# Ubuntu/Debian
sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
# CentOS/RHEL
sudo yum install httpd mariadb-server php php-mysqlnd
sudo systemctl start httpd mariadb
sudo systemctl enable httpd mariadb
# Ubuntu/Debian
sudo apt install nginx mysql-server php-fpm php-mysql
# CentOS/RHEL
sudo yum install nginx mariadb-server php-fpm php-mysqlnd
sudo systemctl start nginx mariadb php-fpm
sudo systemctl enable nginx mariadb php-fpm
# Ubuntu/Debian (UFW)
sudo ufw allow 'Apache Full' # 或 'Nginx Full'
sudo ufw enable
# CentOS/RHEL (Firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
php -v
sudo apt install php-curl php-gd php-mbstring php-xml php-zip # Ubuntu/Debian
sudo yum install php-curl php-gd php-mbstring php-xml php-zip # CentOS/RHEL
sudo nano /etc/php/7.x/apache2/php.ini # 或 /etc/php/7.x/fpm/php.ini
常见修改项:
upload_max_filesize = 16M
post_max_size = 16M
memory_limit = 128M
date.timezone = Asia/Shanghai
sudo nano /etc/apache2/sites-available/example.com.conf
示例配置:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用站点:
sudo a2ensite example.com.conf
sudo systemctl reload apache2
sudo nano /etc/nginx/sites-available/example.com
示例配置:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public_html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo mysql_secure_installation
mysql -u root -p
CREATE DATABASE example_db;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com/public_html
nano /var/www/example.com/public_html/info.php
内容:
<?php phpinfo(); ?>
访问 http://your_server_ip/info.php 测试
/var/www/example.com/public_htmlsudo apt install certbot python3-certbot-apache # 对于Apache
sudo apt install certbot python3-certbot-nginx # 对于Nginx
# Apache
sudo certbot --apache -d example.com -d www.example.com
# Nginx
sudo certbot --nginx -d example.com -d www.example.com
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
调整参数如:
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
sudo apt install php-opcache# Apache
sudo tail -f /var/log/apache2/error.log
# Nginx
sudo tail -f /var/log/nginx/error.log
# PHP-FPM
sudo tail -f /var/log/php7.x-fpm.log
# Ubuntu/Debian
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
# CentOS/RHEL
sudo yum install yum-cron
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
通过以上步骤,您已经成功在Linux上搭建了一个支持PHP的Web服务器环境。根据您的具体需求,可能需要进一步配置安全设置、性能优化或部署特定的PHP应用程序。