You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-8Lines changed: 13 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
3
3
Script/s to install LEMP in a linux box. This LEMP stack is fine-tuned towards WordPress installations. It may work for other PHP based applications, too. For more details, please see the blog post at [https://www.tinywp.in/wp-in-a-box/](https://www.tinywp.in/wp-in-a-box/).
4
4
5
+
There are a number of similar scripts available on the internet. The unique feature of this repo is in [security considerations](https://github.com/pothi/wp-in-a-box#security-considerations).
6
+
5
7
## Supported Platforms
6
8
7
9
+ Ubuntu Bionic Beaver (18.04.x)
@@ -12,17 +14,18 @@ Script/s to install LEMP in a linux box. This LEMP stack is fine-tuned towards W
12
14
13
15
In sync with WordPress philosophy of “[decision, not options](https://wordpress.org/about/philosophy/)”.
14
16
15
-
## Performance Checklist
17
+
## Performance Considerations
16
18
17
-
- Redis for object cache (with memcached as an option)
18
-
- WP Super Cache as full page cache (with Batcache as an alternative)
19
+
- No added bloatware
20
+
- Redis for object cache (available as an optional package)
21
+
- Full page cache support (WP Super Cache, WP Rocket and WP Fastest Cache)
19
22
- PHP 7.x
20
23
- Nginx (no Apache, sorry)
21
24
- Varnish (planned, but no ETA)
25
+
- Swap
22
26
23
27
## Security Considerations
24
28
25
-
- Only ports 80, 443, and port for SSH are open.
26
29
- No phoning home.
27
30
- No external dependencies (such as third-party repositories, unless there is a strong reason to use it).
28
31
- Automatic security updates (with an option to update everything).
@@ -32,6 +35,8 @@ In sync with WordPress philosophy of “[decision, not options](https://wordpres
32
35
- ACL integration.
33
36
- Weekly logwatch (if email is supplied).
34
37
- Isolated user for PhpMyAdmin.
38
+
- PHP user and Nginx user run under different username.
39
+
- Only ports 80, 443, and port for SSH are open.
35
40
36
41
## Implementation Details
37
42
@@ -93,19 +98,19 @@ cat ~/.envrc
93
98
94
99
## What you get at the end of the installation
95
100
96
-
- a SSH user (prefixed with `sys_`) with root privileges (use it only to manage the server such as to create a new MySQL database or to create a new vhost entry for Nginx)
97
-
- a chrooted SFTP user, prefixed with `web_`, with its home directory at `/home/web` along with some common directories(such as ~/log, ~/sites, etc) created already. (you may give it to your developer to access the file system such as to upload a new theme, etc)
101
+
- a SSH user (prefixed with `ssh_`) with root privileges (use it only to manage the server such as to create a new MySQL database or to create a new vhost entry for Nginx)
102
+
- a chrooted SFTP user, prefixed with `sftp_web_`, with its home directory at `/home/web` along with some common directories(such as ~/log, ~/sites, etc) created already. (you may give it to your developer to access the file system such as to upload a new theme, etc)
98
103
99
104
## Where to install WordPress & How to install it
100
105
101
106
- PHP runs as SFTP user. So, please install WordPress **as** SFTP user at `/home/web/sites/example.com/public`.
102
107
- Configure Nginx using pre-defined templates that can be found at the companion repo [WordPress-Nginx](https://github.com/pothi/wordpress-nginx). That repo is already installed. You just have to copy / paste one of [the templates](https://github.com/pothi/wordpress-nginx/tree/master/sites-available) to fit your domain name.
103
-
- If you wish to deploy SSL, a [Let's Encrypt](https://letsencrypt.org/) client is already installed. Just use the command `certbot certonly --webroot -w /home/web/sites/example.com/public -d example.com -d www.example.com`. The renewal script is already in place as a cron entry. So, you don't have to create a new entry. To know more about this client library and to know more about the available options, please visit https://certbot.eff.org/ .
108
+
- If you wish to deploy SSL, a [Let's Encrypt](https://letsencrypt.org/) client is already installed. Please use the command `certbot certonly --webroot -w /home/web/sites/example.com/public -d example.com -d www.example.com`. The renewal script is already in place as a cron entry. So, you don't have to create a new entry. To know more about this client library and to know more about the available options, please visit [https://certbot.eff.org/](https://certbot.eff.org/) .
104
109
105
110
## Known Limitations
106
111
107
112
- SFTP user can not create or upload new files and folders at `$HOME`, but can create or upload inside other existing directories. This is [a known limitation](https://wiki.archlinux.org/index.php/SFTP_chroot#Write_permissions) when we use SFTP capability of built-in OpenSSH server.
108
113
109
114
## Wiki
110
115
111
-
For more documentation, supported / tested hosts, todo, etc, please see the [WP-In-A-Box wiki](https://github.com/pothi/wp-in-a-box/wiki).
116
+
For more documentation, information, supported/tested hosts, todo, etc, please see the [WP-In-A-Box wiki](https://github.com/pothi/wp-in-a-box/wiki).
0 commit comments