引言

NAMP(Apache、MySQL、PHP/Python/Perl)是Linux系统中常见的Web开发环境组合。本文将深入探讨如何在CentOS系统下搭建NAMP环境,从入门到精通,并介绍安全配置与优化技巧。

一、环境搭建

1.1 安装Apache

  1. 安装Apache
sudo yum install httpd
  1. 启动Apache服务
sudo systemctl start httpd
sudo systemctl enable httpd
  1. 测试Apache是否运行

1.2 安装MySQL

  1. 安装MySQL
sudo yum install mysql-community-server
  1. 启动MySQL服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
  1. 设置root密码
sudo mysql_secure_installation

1.3 安装PHP

  1. 安装PHP
sudo yum install php php-mysql
  1. 配置PHP

编辑 /etc/php.ini 文件,修改以下配置:

; date.timezone =Asia/Shanghai
  1. 重启Apache服务
sudo systemctl restart httpd

二、NAMP环境配置

2.1 配置Apache虚拟主机

  1. 创建虚拟主机配置文件
sudo vi /etc/httpd/conf.d/vhost.conf
  1. 添加以下内容
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. 重启Apache服务
sudo systemctl restart httpd

2.2 配置MySQL数据库

  1. 创建数据库和用户
mysql -u root -p
CREATE DATABASE exampledb;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'examplepass';
GRANT ALL PRIVILEGES ON exampledb.* TO 'exampleuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2.3 配置PHP-FPM

  1. 安装PHP-FPM
sudo yum install php-fpm
  1. 编辑 /etc/php-fpm.conf 文件
; pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 35
  1. 重启PHP-FPM服务
sudo systemctl restart php-fpm
sudo systemctl enable php-fpm

三、安全配置与优化

3.1 IP访问

  1. 编辑Apache配置文件
sudo vi /etc/httpd/conf.d/vhost.conf
  1. 添加以下内容
<Directory "/var/www/html">
    Order Allow,Deny
    Allow from all
    Deny from 192.168.1.100
</Directory>

3.2 配置SSL证书

  1. 获取SSL证书
sudo yum install mod_ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/private/localhost.key -out /etc/httpd/ssl/certs/localhost.crt
  1. 配置Apache使用SSL证书
<VirtualHost *:443>
    ServerAdmin admin@example.com
    ServerName example.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/certs/localhost.crt
    SSLCertificateKeyFile /etc/httpd/ssl/private/localhost.key
    SSLCertificateChainFile /etc/httpd/ssl/certs/ca-bundle.crt
</VirtualHost>
  1. 重启Apache服务
sudo systemctl restart httpd

3.3 优化MySQL性能

  1. 编辑 /etc/my.cnf 文件
[mysqld]
max_connections = 100
innodb_buffer_pool_size = 256M
innodb_log_file_size = 128M
  1. 重启MySQL服务
sudo systemctl restart mysqld

四、总结

本文详细介绍了在CentOS系统下搭建NAMP环境的实战攻略,包括环境搭建、配置、安全配置与优化等。通过本文的学习,读者可以快速掌握NAMP环境搭建与优化技巧,为后续的Web开发打下坚实基础。