您现在的位置是:首页 >学无止境 >【Linux基础】【03】Linux系统中部署PHP语言的网站网站首页学无止境

【Linux基础】【03】Linux系统中部署PHP语言的网站

良久久 2023-05-23 08:00:01
简介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 服务

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。