PHP 即Hypertext Preprocessor(超文本预处理语言)的缩写,是一种服务器端的 HTML 嵌入式脚本语言。PHP 混合了 C 、java 、perl 的语法及部分自创的新语法,拥有更好的网页执行速度,更重要的是 PHP 支持绝大多数流行的数据库,在数据库层面的操作功能十分强大。
安装 PHP软件包
PHP 项目最初由 Rasums Lerdorf 在1994年创建,1995年发布第一个版本 PHP1.0。
PHP 官方网站 http://www.php.net 下载。
1.准备工作
为了避免发生程序冲突等现象,建议先将RPM 方式安装的 PHP及相关依赖包(如果已存在)卸载,
[root@ns1 ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps
[root@ns1 Packages]# rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm xz-devel-5.2.2-1.el7.x86_64.rpm
2.安装扩展工具库
-
数据加密工具 libmcrypt 、mhash 、mcrypt (可以从站点 http://sourceforge.net 下载)
-
安装mcrypt
[root@www ~]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@www ~]# cd /usr/src/mcrypt-2.6.8/
[root@www mcrypt-2.6.8]# ./configure
[root@www mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib
:$LD_LIBRARY_PATH
[root@www mcrypt-2.6.8]# ./configure
[root@www mcrypt-2.6.8]# make && make install
3.编码安装 PHP
(1). 解包
将下载获得的 PHP源码包解压并释放到 /usr/src 目录下。
[root@ns1 src]# tar zxf php-5.5.38.tar.gz
[root@ns1 src]# cd php-5.5.38/
(2). 配置
在定制 PHP的配置选项时,最关键的是要指定 httpd、mysqld的安装路径。以便添加相关支持设置,使 LAMP各组件协同工作。
除此之外,还可以指定安装路径,启用多字节支持、加密扩展支持等。
[root@ns1 php-5.5.38]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring
[root@ns1 php-5.5.38]# echo $?
0
上面配置命令中的选项含义:
- –prefix:指定将 PHP程序安装路径。
- –with-mcrypt:加载数据加密等扩展工具支持。
- –with-apxs2:设置 Apache HTTP server 提供的 apxs模块支持程序的文件位置。
- –with-mysqli:设置 MySQL数据库服务程序的安装位置。
- –with-config-file-path:设置 PHP的配置文件 php.init 将要存放的位置。
- –enable-mbstring:启用多字节字符串功能,以便支持中文等代码。
(3). 编译及安装
[root@ns1 php-5.5.38]# make && make install
[root@ns1 php-5.5.38]# echo $?
0
设置 LAMP 组件环境
设置 LAMP组件环境,主要包括对 PHP的配置文件 php.ini 、Apache 的配置文件 httpd.conf 的调整。前者用来确定 PHP的运行参数,后者用来加载 libphp5.so 模块,以支持 PHP 网页。
1. php.ini 配置调整
(1). php.ini 的建立及基本设置
安装好 PHP软件包后,服务器不会自动创建 php.ini 配置文件,源码目录下提供了
/usr/src/php-5.5.38/php.ini-development //开发样板,用于学习测试。
/usr/src/php-5.5.38/php.ini-production //开发样板,用于实际运营
选择其中一个样例文件,并复制到 PHP的配置文件目录 /usr/local/php5 下,并改名为 php.ini。
通过修改 php.ini 文件中的配置内容,可以控制 PHP 网页的执行特性。
[root@ns1 ~]# cp /usr/src/php-5.5.38/php.ini-development /usr/local/php5/php.ini
[root@ns1 ~]# grep -v "^;" /usr/local/php5/php.ini |grep -v "^$"
[PHP]
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
output_buffering = 4096
······/ //省略部分内容
[root@ns1 ~]# vim /usr/local/php5/php.ini
default_charset = "UTF-8" //设置默认字符集为 UTF-8
file_uploads = On //允许通过 PHP网页上传文件
upload_max_filesize = 2M //允许上传的文件大小限制
max_file_uploads = 20 //每个 HTTP最多允许请求上传的文件数
post_max_size = 8M //每次通过表单 post提交数据量限制
short_open_tag = On //允许识别 PHP短语法标记,即 <?···?>
(2). 添加 ZendGuardLoader 优化模块
为了进一步提高 PHP程序的执行效率,优化页面加载速度,可以为 PHP添加 Zend公司开发的 ZendGuardLoader 优化模块。
[root@ns1 ~]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src/
[root@ns1 ~]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
[root@ns1 zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
然后修改 php.ini 配置文件,添加加载及启用 ZendGuardLoader 模块的配置语句。
[root@ns1 zend-loader-php5.5-linux-x86_64]# vim /usr/local/php5/php.ini
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1
2.httpd.conf 配置调整
要使 httpd服务器支持 PHP页面解析功能,需通过 LoadModule 配置项加载 PHP程序的模块文件,并通过 AddType配置项添加对 “.php” 类型网页文件的支持。
除此以外,还应修改 DirectoryIndex 配置行,添加 index.php配置项,以识别常见的 PHP首页文件。
[root@ns1 ~]# vim /usr/local/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html
[root@ns1 ~]# /usr/local/httpd/bin/apachectl restart //重启服务以更新配置
上面的配置内容中,LoadModule 行应该会在安装 PHP的过程中自动添加,其中的 “php5_module” 表示模块名称, “modules/libphp5.so” 表示模块文件位置。而 AddType行需要手动添加,DirectoryIndex 行在原有基础上对其进行修改。
测试 LAMP 协同工作。
- 测试PHP网页能否正确显示
[root@ns1 ~]# vim /usr/local/httpd/htdocs/test1.php
<?php
phpinfo( );
?>
通过浏览器访问测试网页 :http://192.168.160.7/test1.php
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OuTSHe1T-1595426173013)(img/7.22.png)]
- 测试PHP网页能否访问MySQL数据库
其中,“mysqli_connect()” 函数用于连接 MySQL 数据库,需要指定目标主机地址,以及授权访问的用户名、密码。
[root@ns1 ~]# vim /usr/local/httpd/htdocs/test2.php
<?php
$link=mysqli_connect('localhost','root','password');
if($link) echo "恭喜你,数据库连接成功啦!!";
mysqli_close($link);
?>
然后访问测试网页 :http://192.168.160.7/test2.php
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c4M16U14-1595426173016)(img/7.22.1.png)]