使用VPS来搭建一个可供建站的LAMP环境

这里所写的是我如何利用vultr的Ubuntu 18.04主机,来搭建一个支持Apache、MySQL、PHP的LAMP环境。可供各位参考,也是给自己日后再次进行网站搬家的时候有个更好的指南。

本文主要参考了DigitalOcean的部分教程,以及网络上的一些零零碎碎的教程。

本文的操作顺序基本上是可以打乱进行的。如果你不需要MySQL或PHP,你可以跳过相关文章。

搭建VPS

这一步没什么好说的,直接在Vultr后台开通一个主机就可以了。我选择的是纽约(新泽西)的主机。

配置时区

如果时区没有被准确配置的话,那么日后数据库里面的时间可能会和当地的时间有所不同。

可以通过以下指令来查看当前主机的时区:

timedatectl

如果发现时区不对,你可以先通过这个指令来获取所有可用的时区:

timedatectl list-timezones

然后输入以下指令,来更改时区(这里以上海为例):

sudo timedatectl set-timezone Asia/Shanghai

一些初始化操作

建立一个非root账号,并给予其sudo权限:

adduser chenpan
usermod -aG sudo chenpan

修改防火墻配置

ufw allow OpenSSH
ufw enable

安装Apache

使用以下两个指令来安装Apache

sudo apt update
sudo apt install apache2

然后再次修改防火墙配置,允许流量

sudo ufw app list
sudo ufw app info "Apache Full"
sudo ufw allow in "Apache Full"

安裝MySQL

通过以下指令来安装MySQL

sudo apt install mysql-server
sudo mysql_secure_installation

配置MySQl,让特定用户对所有表都具有管理权限,这里以chenpan为例:

sudo mysql

创建一个用户chenpan

CREATE USER 'chenpan'@'localhost' IDENTIFIED BY 'password'; 

给chenpan所有权限

GRANT ALL PRIVILEGES ON * . * TO 'chenpan'@'localhost';
FLUSH PRIVILEGES;
exit

安裝PHP

sudo apt install php libapache2-mod-php php-mysql
sudo systemctl restart apache2

接下来我想修改一下PHP的上传大小限制

先使用以下指令找到php.ini(这里是PHP7.2,如果是其他版本的PHP,应该把7.2改成对应的版本号就可以了)

sudo nano /etc/php/7.2/apache2/php.ini

找到以下两个,修改成你想要的大小

upload_max_filesize   = 20M
post_max_size = 20M

重启Apache

sudo systemctl restart apache2

配置虚拟机

先创建一个站点目录,这里以/var/www/website为例

sudo mkdir /var/www/website
sudo chown -R $USER:$USER /var/www/website
sudo chmod -R 755 /var/www/website
find ./ -type d -exec chmod 755 {} \;
find ./ -type f -exec chmod 644 {} \; 

然后配置虚拟机,根目录是/var/www/website,域名是domain.mydomain

sudo nano /etc/apache2/sites-available/website.conf

然后复制这些内容进去

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName domain.mydomain
    ServerAlias www.domain.mydomain
    DocumentRoot /var/www/website
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<Directory /var/www/website>
    Options FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>

启用这个虚拟机

sudo a2ensite website.conf
sudo systemctl reload apache2 

若是要添加新的虚拟机,重复以上操作就可以了。

配置SSL

SSL证书(https)可以说是现在每个网站都必须要有的基本配置了。而获得SSL证书,也十分的简单。

先安装一下可以帮我们快速配置SSL证书的certbot

sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-apache 

然后,就可以使用certbot来获得SSL证书了

sudo certbot --apache -d domain1 -d domain2 -d domain3

安装phpmyadmin

phpmyadmin可以很大程度地方便我们管理数据库,因此我会给我的主机安装phpmyadmin。

sudo apt update
sudo apt install phpmyadmin php-mbstring php-gettext
sudo phpenmod mbstring 
sudo systemctl restart apache2 

phpmyadmin的地址是IP/phpmyadmin

我们可以通过以下操作来让phpmyadmin更加地安全

在sudo nano /etc/apache2/conf-available/phpmyadmin.conf中DirectoryIndex index.php后面另起一行AllowOverride All

sudo nano /usr/share/phpmyadmin/.htaccess

写入

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

然后输入以下指令

sudo htpasswd -c /etc/phpmyadmin/.htpasswd chenpan 

如果你配置了一个以/usr/share/phpmyadmin为DocumentRoot的虚拟机,那么你可以使用自己想要的域名来访问phpmyadmin,而不是IP/phpmyadmin。

配置SSH密钥

因为我使用VS Code来管理维护我的网站,而VS Code支持通过SSH远程连接服务器,从而达到本地化的体验,所以我想要配置一个SSH密钥,这样以后使用VS Code连接服务器的时候就无须输入密码了。

先使用Putty Key Generator来生成一个Key,这个网上教程很多。我们要做的是把Public Key的内容拷到本地电脑的C:/users/你的用户名/.ssh/id_rsa.pub。

然后通过远程连接主机,输入以下指令:

sudo nano ~/.ssh/authorized_keys

然后另起一行,把刚刚得到的public key拷进去就可以了。

Private Key记得另行保存。

因为我们建立了一个非root账号chenpan。如果我们希望chenpan也能通过此密钥登陆的话,请输入以下指令:

rsync --archive --chown=chenpan:chenpan ~/.ssh /home/chenpan

生成系统语言

sudo dpkg-reconfigure locales

安装PageSpeed Module

sudo wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
sudo dpkg -i mod-pagespeed-stable_current_amd64.deb
sudo systemctl restart apache2

之后

nano /etc/apache2/mods-available/pagespeed.conf

写入以下内容

<Location /pagespeed_admin>
    Order allow,deny
    Allow from localhost
    Allow from 127.0.0.1
    Allow from all
    SetHandler pagespeed_admin
</Location>

<Location /pagespeed_global_admin>
    Order allow,deny
    Allow from localhost
    Allow from 127.0.0.1
    Allow from all
    SetHandler pagespeed_global_admin
</Location>

重启Apache

systemctl restart apache2

生成Swap

切割4GB作为SWAP空间(可根据实际情况修改)

sudo fallocate -l 4G /swapfile

启用Swap

sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

开机自动启动

sudo nano /etc/fstab

加入以下内容

/swapfile   none swap    sw 0 0

一些可能的错误

如果出现500错误了,那么请输入以下指令

sudo a2enmod headers
sudo systemctl restart apache2

查看PHP错误日志,请输入以下指令

sudo cat /var/log/apache2/error.log
sudo htpasswd -c /etc/phpmyadmin/.htpasswd chenpan

你可能还喜欢

关于“使用VPS来搭建一个可供建站的LAMP环境”有3则评论

发表评论

你的电子邮箱地址不会被公开。被标记*的是你必须填写的。