您现在的位置是:首页 >学无止境 >【Linux基础】【03】Linux系统中部署PHP语言的网站网站首页学无止境
【Linux基础】【03】Linux系统中部署PHP语言的网站
1、更新系统软件包:
sudo apt update # 更新可用软件包列表
sudo apt upgrade # 更新已安装的包
2、安装PHP:
sudo apt-get install php # 安装PHP
php -v # 检查PHP版本
3、安装Web服务器软件:
安装PHP时,应该会默认自动安装Apache2(Web服务器软件),可以使用以下命令查看Apache2的版本号:
apache2 -v # 查看Apache2的版本号
# 若没有安装Apache,则使用以下命令进行安装:
sudo apt-get install apache2 # 安装Apache
这里注意:
默认情况下,Apache2的监听端口运行在80端口,但是可以通过修改Apache2的配置文件来将其运行在其他端口。【避免与其他Web服务器(如Nginx)所使用的默认端口发生冲突】
(1)Apache2的第一个配置文件位于/etc/apache2/ports.conf
,使用vim文本编辑器编辑。
cd /etc/apache2
sudo vim ports.conf
# 找到以下行:
Listen 80
# 将其中的监听端口 80 替换为您想要使用的端口号,例如 8080
然后 :wq 保存文件。
(2)Apache2的第二个配置文件位于/etc/apache2/sites-available/000-default.conf
,使用vim文本编辑器编辑,添加以下内容:
cd /etc/apache2/sites-available
sudo vim 000-default.conf
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
然后 :wq 保存文件。并重启Apache2服务,使配置生效。
sudo service apache2 restart # 重启Apache2服务
sudo systemctl status apache2 # 查看Apache服务器是否启动
然后在浏览器中输入http://服务器IP地址:8080
,以访问Apache服务器的默认页面。
4、安装数据库:
4.1 安装MySQL数据库:
sudo apt-get install mysql-server mysql-client # 安装MySQL数据库
sudo systemctl start mysql # 安装完成后,使用此命令启动MySQL服务
sudo systemctl status mysql # 使用此命令检查MySQL服务是否正在运行
sudo systemctl enable mysql # 使用此命令设置MySQL服务在系统启动时自动启动
# 使用以下命令查看MySQL版本号:
mysql -u 用户名 -p # 登录MySQL
SELECT VERSION(); # 查看版本号
注意:MySQL安装时可能不会提示输入MySQL root用户的密码,那么就打开/etc/mysql/debian.cnf文件,在这个文件中有系统默认给我们分配的用户名和密码:
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = LcFg5jk9asWj8VbO
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = LcFg5jk9asWj8VbO
socket = /var/run/mysqld/mysqld.sock
(通过这个密码就可以直接对MySQL进行操作了)
使用默认用户密码登录:
mysql -u debian-sys-maint -p
修改root远程登录的ip为%,意思是允许所有的ip远程访问:
use mysql;
update user set host = '%' where user = 'root' limit 1;
flush privileges;
打开mysql配置文件,注释3306端口于本地的绑定:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address = 127.0.0.1
# mysqlx-bind-address = 127.0.0.1
重启MySQL(需要输入Linux系统用户密码):
systemctl status mysql.service # 查看状态
systemctl start mysql.service # 启动数据库
systemctl stop mysql.service # 停止数据库
systemctl restart mysql.service # 重启数据库
新建一个用户:
mysql -u debian-sys-maint -p # 先使用默认账户登录
create user '用户名'@'%' identified by '设置密码'; # 创建用户
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'; # 授予新用户访问MySQL的权限
MySQL安装完成后会默认创建一个数据库名称mysql,下面可以新建一个自己的数据库:
CREATE DATABASE 新建数据库名称; # 创建一个新的MySQL数据库
# 如果您想在创建数据库时指定字符集和排序规则,可以使用以下命令:
CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4.2 安装Redis数据库:
sudo apt-get install redis-server # 安装Redis数据库【若需要】
redis-cli ping # 检查Redis是否安装成功,若输出PONG,则表示Redis已经安装成功并正在运行。
redis-server -v # 查看Redis数据库的版本号
5、安装PHP的mysqli拓展 或 Redis扩展【若需要】:
sudo apt-get install php-mysqli # 安装php-mysqli拓展
php -m | grep mysqli # 检查 mysqli 扩展是否安装成功
(安装Redis扩展是指在PHP环境中安装Redis扩展,以便在PHP应用程序中使用Redis进行数据存储和缓存。Redis扩展是一个PHP模块,需要在PHP环境中安装和启用才能使用。)
sudo apt-get install php-redis # 安装Redis扩展
php -m | grep redis # 检查Redis扩展是否安装成功,若输出redis,则表示Redis扩展安装成功。
# 配置Redis连接:
# 在PHP代码中使用Redis扩展时,需要配置Redis连接。可以在PHP代码中使用以下代码进行连接:
redis = new Redis();
redis->connect('127.0.0.1', 6379);
# 其中,127.0.0.1是Redis服务器的IP地址,6379是Redis服务器的端口号。如果Redis服务器在本地运行,则可以使用默认的IP地址和端口号。
6、部署网站代码:
使用FTP、SCP等工具,上传代码到Web服务器的根目录 /var/www/html
目录。
这里注意:
如果上传代码文件失败,可能是由于
上传目录的权限为不允许上传文件。那么则需要修改 /var/www/html
目录的权限:
cd /var/www
sudo chmod 777 html
# 777表示设置所有者具有读、写、执行权限,组和其他用户具有读、写、执行权限。
7、配置网站:
根据网站的需求,进行相应的配置,例如设置数据库连接、调整PHP配置等。
8、启动Web服务器:
完成以上步骤后,启动Web服务器,访问网站即可。
9、Apache(Ubuntu)安装 SSL 证书:
9.1 申请腾讯云SSL证书:
9.2 下载SSL证书:
9.3 解压并打开下载的SSL证书文件夹:
(找到需要用到的三个文件)
9.4 上传 SSL 证书到服务器:
sudo mkdir -p /home/ubuntu/ssl-apache # 创建文件夹存放SSL证书
sudo chmod 777 /home/ubuntu/ssl-apache # 修改目录的上传权限
【使用FileZilla将上面的两个文件上传到 /home/ubuntu/ssl-apache 目录】
9.5 安装Apache的SSL模块:
sudo apt update
sudo apt install apache2 openssl
sudo a2enmod ssl
9.6 配置SSL证书:
sudo vim /etc/apache2/sites-available/default-ssl.conf # 打开Apache服务器的SSL配置文件
添加以下内容:
SSLEngine on
SSLCertificateFile /home/ubuntu/ssl-apache/www.abc.com.crt
# 将www.abc.com更换为自己的域名
SSLCertificateKeyFile /home/ubuntu/ssl-apache/www.abc.com.key
# 将www.abc.com更换为自己的域名
SSLCertificateChainFile /home/ubuntu/ssl-apache/root_bundle.crt
9.7 配置虚拟主机:
sudo vim /etc/apache2/sites-available/000-default.conf # 打开Apache服务器的虚拟主机配置文件
添加以下内容:
<VirtualHost *:443>
ServerName www.abc.com
# 将www.abc.com更换为自己的域名
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /home/ubuntu/ssl-apache/www.abc.com.crt
# 将www.abc.com更换为自己的域名
SSLCertificateKeyFile /home/ubuntu/ssl-apache/www.abc.com.key
# 将www.abc.com更换为自己的域名
SSLCertificateChainFile /home/ubuntu/ssl-apache/root_bundle.crt
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
9.8 将HTTP请求重定向到HTTPS:
sudo vim /var/www/html/.htaccess # 打开.htaccess文件,并添加以下代码
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
9.9 启动 Apache2 的重定向,并重启 Apache2 服务:
sudo a2enmod rewrite # 启动 Apache2 的重定向
sudo service apache2 restart # 重启 Apache2 服务