1. 准备CentOS开发环境
首先更新系统软件包以获取最新安全补丁和功能:
sudo yum update -y
安装EPEL仓库(Extra Packages for Enterprise Linux),它提供了额外的PHP模块和工具:
sudo yum install epel-release -y
2. 安装LAMP/LEMP核心组件
Apache是CentOS默认的Web服务器,适合大多数PHP项目:
sudo yum install httpd -y
sudo systemctl start httpd
sudo systemctl enable httpd # 设置开机自启
验证Apache是否运行:在浏览器访问http://your_server_ip,应看到Apache默认页面。
MariaDB是CentOS默认的MySQL兼容数据库,性能更优:
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
运行安全脚本配置数据库(设置root密码、删除匿名用户、禁用远程root登录):
sudo mysql_secure_installation
安装PHP核心及常用模块(如MySQL连接、GD图像处理、MB字符串处理):
sudo yum install php php-mysqlnd php-gd php-mbstring php-xml php-bcmath -y
重启Apache使PHP生效:
sudo systemctl restart httpd
验证PHP安装:在/var/www/html目录下创建info.php文件,内容为<?php phpinfo(); ?>,访问http://your_server_ip/info.php,应看到PHP信息页面。
3. 配置PHP环境
PHP的主配置文件位于/etc/php.ini,可根据需求修改以下参数:
memory_limit:增加脚本内存限制(如256M);upload_max_filesize:设置上传文件大小限制(如50M);max_execution_time:延长脚本执行时间(如300秒)。sudo systemctl restart httpd
若需托管多个网站,可创建虚拟主机。例如,为example.com创建配置文件:
sudo vi /etc/httpd/conf.d/example.com.conf
添加以下内容(替换example.com为你的域名):
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/requests.log combined
<Directory /var/www/example.com/public_html>
AllowOverride All # 允许.htaccess覆盖配置
Require all granted
</Directory>
</VirtualHost>
创建网站目录并设置权限:
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R apache:apache /var/www/example.com/public_html
重启Apache使配置生效:
sudo systemctl restart httpd
4. 编写与部署PHP应用
使用PSR-1(基本编码规范)、PSR-2(代码风格指南)、PSR-4(自动加载)等标准,确保代码结构一致、可维护。例如:
StudlyCaps(如UserController);camelCase(如getUserInfo);.php。Composer是PHP的依赖管理工具,可自动安装第三方库(如Laravel、Twig)。安装Composer:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
创建composer.json文件声明依赖(如使用Laravel):
{
"require": {
"laravel/framework": "^10.0"
}
}
安装依赖:
composer install
使用Laravel、Symfony等MVC框架,将应用分为模型(Model,处理数据)、视图(View,展示界面)、控制器(Controller,处理逻辑),提高代码复用性和可维护性。例如,Laravel的路由文件routes/web.php可定义URL与控制器的映射:
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
$user = $stmt->fetch();
htmlspecialchars函数转义输出:echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
@csrf指令)。5. 测试与部署
在开发环境中使用XAMPP、WAMP或直接运行php -S localhost:8000启动内置服务器,测试应用功能。
APP_DEBUG=false);