技术 · 2023年1月4日

搭建LAMP+SSL+WordPress

基于ubuntu 22.04 LTS的VPS服务器(linode 2G)

一、基础设置

1.设置时区

dpkg-reconfigure tzdata

2.修改SSH端口

vi /etc/ssh/sshd_config

找到#Port 22 去掉#注释,改成任意端口号,如:Port 1234

Port 1234

3.重启SSH服务

service sshd restart

4.系统更新

apt-get update
apt-get upgrade --show-upgraded

二、LAMP安装

1.安装Apache web server

sudo apt install apache2

2. 安装MySQL web server

sudo apt install mysql-server

3.安装PHP

sudo apt install php libapache2-mod-php php-mysql

4. 要在服务器上托管WordPress站点,请安装以下PHP组件

sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc

三、为ubuntu 22.04 LTS 配置LAMP

1.配置Apache Web服务器

修改文件:/etc/apache2/apache2.conf

KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 5

2.基于2GB Linode进行优化,修改文件:/etc/apache2/mods-available/mpm_prefork.conf

<IfModule mpm_prefork_module>
        StartServers            4
        MinSpareServers         3
        MaxSpareServers         40
        MaxRequestWorkers       200
        MaxConnectionsPerChild  10000
</IfModule>

3.修改防火墙设置,此设置允许通过防火墙的 HTTP 和 HTTPS 连接,从而启用 Web 访问。

sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
sudo ufw enable

4.验证防火墙设置

sudo ufw status

5. 禁用模块并使用 and 命令启用模块

sudo a2dismod mpm_event
sudo a2enmod mpm_prefork

6.重启Apache

sudo systemctl restart apache2

7. 确保 Apache 在重新启动后仍然有效

sudo systemctl status apache2

8.Apache现在已经准备好,请使用web浏览器访问服务器的ip地址,如果成功,浏览器将显示Apache2的欢迎页面

http://your_IP_address/

四、在 Apache 上配置域名与服务器主机

1.使用默认文件为新主机进行配置

Sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/hug.app.conf

2.为此域名修改配置文件,修改文件:/etc/apache2/sites-available/hug.app.conf

<Directory /var/www/html/hug.app/public_html>
         Require all granted
</Directory>
<VirtualHost *:80>
         ServerName hug.app
        ServerAlias www.hug.app
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/hug.app/public_html

         ErrorLog /var/www/html/hug.app/logs/error.log
         CustomLog /var/www/html/hug.app/logs/access.log combined
</VirtualHost>

3.为域名创建目录

sudo mkdir -p /var/www/html/hug.app/{public_html,logs}

4.将所有者更改为:

sudo chown -R www-data:www-data /var/www/html/hug.app/public_html

5.设置目录权限:

sudo chmod -R 755 /var/www/html/hug.app/public_html

6.链接虚拟主机文件并启用站点:

sudo a2ensite hug.app

7.作为安全预防措施,禁用默认站点:

sudo a2dissite 000-default.conf

8.重新加载 Apache 以应用所有更改:

sudo systemctl reload apache2

9.验证域名是否可访问。域名的 DNS 记录必须已解析为服务器地址。使用浏览器访问域名,域名目录的内容应该是可见的。若没有任何文件添加到目录中,浏览器可能显示空白。

五、配置MySQL数据库

1. 以用户身份登录 MySQL shell

sudo mysql -u root

2.在MySQL中,创建数据库。

CREATE DATABASE webdata;
CREATE USER 'webuser' IDENTIFIED BY 'password';
GRANT ALL ON webdata.* TO 'webuser';

3.退出SQL

quit

4.最新版本需要root密码才能使用,再次进入MySQL

sudo mysql

5.设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'password';

6.退出SQL

exit

7. 使用内置的mysql_secure_installation工具提高数据库的安全性。根据请求提供帐户的 MySQL 密码。

sudo mysql_secure_installation

8. 当系统提示更改密码时,请保持密码不变。但要回答以下问题:

Remove anonymous users?
Disallow root login remotely?
Remove test database and access to it?
Reload privilege tables now?

六、配置PHP

1. 首先使用该选项验证安装了哪个 PHP 版本。

php -v

2. 如果启用了错误消息和日志记录,则 PHP 错误更容易调试。修改文件:/etc/php/8.1/apache2/php.ini

error_reporting = E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30

3. 创建 PHP 错误日志并将日志的所有权分配给 Web 服务器:

sudo mkdir /var/log/php
sudo chown www-data /var/log/php

4. 重新启动 Apache 服务器以应用 PHP 更改:

sudo systemctl restart apache2

七、安装WordPress

1. 启用重写模块。这允许站点内的链接更具可读性。

sudo a2enmod rewrite

2. 要允许WordPress插件和扩展使用文件,请设置指令以启用它们。修改文件:/etc/apache2/sites-available/hug.app.conf

<VirtualHost *:80>
...
    <Directory /var/www/html/hug.app/public_html/>
        AllowOverride All
    </Directory>
...
</VirtualHost>

3.运行Apache测试工具,提示Syntax OK则有效

sudo apache2ctl configtest

4. 重新启动 Apache 。

sudo systemctl restart apache2

八、下载WordPress

1.在网站的根目录中创建一个新目录。

sudo mkdir -p /var/www/html/hug.app/src

2. 输入新目录

cd /var/www/html/hug.app/src

3. 下载 WordPress 软件包

sudo wget http://wordpress.org/latest.tar.gz

4. 从文件中提取WordPress文件。

sudo tar -xvf latest.tar.gz

5. 使用当前日期重命名存档。这样可以更轻松地在将来还原文件。

sudo mv latest.tar.gz wordpress-`date "+%Y-%m-%d"`.tar.gz

6. 将提取的文件移动到域的根目录。

sudo mv wordpress/* ../public_html/

7. 确保 Web 服务器用户被授予对域的整个根目录的所有权。

sudo chown -R www-data:www-data /var/www/html/hug.app

九、在ubuntu 22.04 LTS 上配置WordPress,及SSL。

1. 使用 Web 浏览器访问域名,按步骤完成设置。

http://hug.app

2.登录WordPress后,在设置中修改 WordPress地址(URL)为:https://hug.app。站点地址(URL)为:https://hug.app

3. 修改Apache配置文件:/etc/apache2/sites-available/hug.app.conf

<Directory /var/www/html/hug.app/public_html>
         Options Indexes FollowSymLinks
         Require all granted
         AllowOverride ALL
</Directory>

<VirtualHost *:443>
         SSLEngine On																			
         SSLCertificateFile /etc/apache2/ssl/example.crt 
         SSLCertificateKeyFile /etc/apache2/ssl/example.key
         ServerName hug.app
         ServerAlias www.hug.app
	 ServerAdmin webmaster@localhost
	 DocumentRoot /var/www/html/hug.app/public_html
         ErrorLog /var/www/html/hug.app/logs/error.log
         CustomLog /var/www/html/hug.app/logs/access.log combined
</VirtualHost>

4.重启apache服务。

sudo systemctl restart apache2