在windows和centos系统中搭建PHP7开发环境
在win7环境上安装:
一:准备软件:
1.下载:php-7.1.16-Win32-VC14-x64.zip 地址:http://php.net/downloads.php
2.下载:apache2.4:httpd-2.4.33-o102o-x64-vc14-r2.zip 地址:http://httpd.apache.org/download.cgi
注意:Apache2.2中是不支持php7的,所以,我们必须下载Apache2.4
3. 下载Visual C++ 2015
由于php7(apache也需要)使用了VC14的编译环境,所以我们还需要下载Visual C++ 2015,下载地址:
https://www.microsoft.com/en-US/download/details.aspx?id=48145
二.安装:
1.安装vc++ 2015
双击安装vc_redist.x64.exe(要点时间,等着)
2. 解压php-7.1.16-Win32-VC14-x64.zip:
设置环境变量:在Path 中添加“ ;C:\wjanzhuang\php7.1.16;C:\wjanzhuang\php7.1.16\ext ”
php -version 出现版本号,则安装成功。
配置参数:
需要修改的文件:C:/wjanzhuang/php7.1.16/php.ini
a. 修改php.ini-development
将C:/wjanzhuang/php7.1.16目录下的php.ini-development文件名修改为php.ini
b. 修改扩展目录
extension_dir = "C:/wjanzhuang/php7.1.16/ext"
此处必须为绝对路径
c. 开启相关扩展
根据需要开启相关扩展,我这边只开启了如下扩展:
extension=php_gd2.dll
extension=php_curl.dll
extension=php_mbstring.dll
extension=php_openssl.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
注意:php7中,已经不支持php_mysql.dll这个扩展了。
d. 设置时区
date.timezone ="Asia/Shanghai"e. 设置错误报告等级
error_reporting = E_ALL ^ E_NOTICE
e. 设置文件传输参数
upload_max_filesize = 12M 设置上传文件的大小
max_file_uploads = 60 设置一次上传的附件总数
三.安装apache
1.解压httpd-2.4.33-o102o-x64-vc14-r2.zip
2.创建Apache服务
以管理员身份进入cmd
输入:
出现:
Installing the "Apache2.4" service
The "Apache2.4" service is successfully installed
则创建成功。
3.配置apache参数
需要修改的文件:C:/wjanzhuang/httpd2.4.33/Apache24/conf/httpd.conf
a. 设置apache的安装目录
将Define SRVROOT "/Apache24"修改为
Define SRVROOT "C:/wjanzhuang/httpd2.4.33/Apache24"
b. 配置工作空间
将下面两行
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
修改为 (D:/phpwork为存放php工程目录的)
DocumentRoot "D:/phpwork"
<Directory "D:/phpwork">
c. 禁止访问网站目录
对于上面<Directory "D:/phpwork">,出于安全方面的考虑,我们最好配置该选项,禁止访问网站的目录列表。设置成如下:
<Directory "D:/phpwork">
Options All
AllowOverride All
Require all granted
</Directory>
d. 装载php模块
在#LoadModule xml2enc_module modules/mod_xml2enc.so下面添加:(将php的目录装在到apache配置文件中)
PHPIniDir "C:/wjanzhuang/php7.1.16"
LoadModule php7_module "C:/wjanzhuang/php7.1.16/php7apache2_4.dll"
AddType application/x-httpd-php .php
注意:php7apache2_4.dll文件要下载以上safe版的才有,不要下错php版本。
e. 配置默认首页
在<IfModule dir_module>标签内,将
DirectoryIndex index.html
修改为
DirectoryIndex index.html index.php
f. 检查Apache配置
切换到apache安装目录的bin目录下,输入:httpd.exe -t,如图:
如果返回Syntax OK,则表示apache在配置上以及所需的运行环境都是OK的,如果不是,则需要根据错误提示,排查错误。
五,测试:
1.编辑index.php文件放入D:\phpwork文件夹中。index.php测试码如下:
<!DOCTYPE html>
<html>
<body>
<?php
$x=10;
$y=6;
echo ($x + $y);
echo "<br>";
echo ($x - $y);
echo "<br>";
echo ($x * $y);
echo "<br>";
echo ($x / $y);
echo "<br>";
echo ($x % $y);
?>
</body>
</html>
2.在C:\wjanzhuang\httpd2.4.33\Apache24\bin中点击httpd.exe文件启动apache服务器
在页面中访问localhost等到相应页面则成功。
在linux(centos7.2上)环境上安装:
一.apache安装
1.运行:yum install httpd httpd-devel
2.修改配置文件:/etc/httpd/conf 参照win下的配置。
1:Listen 8006
2:<Directory "/var/www/html">
Options All
AllowOverride All
Require all granted
</Directory>
3:<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
注意:默认是80端口,当服务器上80被其他的程序占用时必须换成其他端口,否则启动不了。换成好的端口要开防火墙,在阿里云服务器则在管理界面打开端口即可。
3.进入/bin
systemctl start httpd.service 启动服务
systemctl stop httpd.service 停止服务
systemctl restart httpd.service 重启服务
第二、设置开机启动/关闭
systemctl enable httpd.service #开机启动
systemctl disable httpd.service #开机不启动
第三、检查httpd状态
systemctl status httpd.service关闭防火墙(阿里云直接在阿里云管理界面配置)
关闭:systemctl stop firewalld.service
查看状态:systemctl status firewalld.service
PHP安装yum -y install php
php各项服务安装:
yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-mysql
网站文件夹:
/var/www/html
然后把你的PHP文件上传到html文件夹里去浏览器中输入主机IP加端口(默认是80)就可以了
附录:
在centos系统安装PHP时,默认的安装版本都很低,所以要指定安装的高版本。方法如下:
以是CentOS 7.0的源为例。
# yum install epel-release# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
使用yum list命令查看可安装的包(Packege)。
# yum list --enablerepo=remi --enablerepo=remi-php70 | grep php
安装PHP7.0yum源配置好了,
下一步就安装PHP7.0
yum install --enablerepo=remi --enablerepo=remi-php70
源码安装php7.2.5
1.下载php7.2.5.tar.gz并解压
tar -zxvf php7.2.5.tar.gz
进入:cd php7.2.5
2.进入解压包后,安装必要依赖:
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel autoconf
3.安装gcc
yum install gcc
yum install gcc-c++
4.安装
yum -y install libxslt-devel*
yum -y install perl*
yum -y install httpd-devel
find / -name apxs 得到的路径是:/usr/bin/apxs
于是得到--with-apsx2的路径是/usr/bin/apxs
注意:yum -y install perl* 安装的会非常多,也可以不装,缺什么再单独装。
5.配置
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs
注意:--prefix=/usr/local/php7是php的安装路径。--with-apxs2=/usr/bin/apxs是apache中路径,不配置的话,运行php文件时,只是下载,不能解析,且无法生存libphp.so文件,可通过find / -name apxs 得到的路径是:/usr/bin/apxs。未生成libphp.so文件,怎删除安装的,重新运行./configure ........
坑:::--with-config-file-path=/usr/local/php7/etc 设置php.ini设置的位置,后面操作要把php.ini复制到这个文件夹。否则设置的php.ini 是无效的。
6.编译
make
7.编译检查
make test
这步可走可不走,因为它老是爱提示错误,但又不给错误信息,如果有问题,那么编译的时候一定不成功,既然编译成功了,那么可以直接进行安装。
8.安装
make install
9.添加环境变量
vi /etc/profile
在末尾加入:
PATH=$PATH:/usr/local/php7/bin
export PATH
10.使改动立即生效
source /etc/profile
11.查看php版本
php -v
(如果有问题 请检查添加的环境变量是否是PHP安装目录里的bin目录)
12.生成必要文件
cp php.ini-production /usr/local/php7/etc/php.ini
cp sapi/fpm/php-fpm /usr/local/php7/etc/php-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
以下配置是apache的配置,将php配置到apache环境中
13.配置
修改Apache配置:
vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"
(请注意,/var/www这个路径是自定义,在配置文件中有好几处这个路径,如果更改,请全局搜索一下都改掉)
找到
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在后面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .php7
搜索<IfModule dir_module>下面这一块添加上index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
搜索有没有下面这一行:
LoadModule php7_module modules/libphp7.so
如果没有 请手动添加 否则 会出现运行php文件变成下载,通过find / -name '*libphp7.so*'
在最下面配置域名
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.你的域名.com
ServerAlias 你的域名.com
<Directory /phpstudy/www>
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>
14.测试
在www目录下创建index.php
添加<?php phpinfo();?>
访问:www.你的域名.com
注意问题:
问题一:出现:Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
基本上apache端口被占用,需要换其他端口。如:81
问题二:父目录(/var/www/html)不可写。安装程序无法建立数据目录(/var/www/html/moodledata),即使在使用了chmod -R 777 /var/www/html/moodledata 也是会出现问题。这是跟linux系统的安全机制相关,需要再系统内部进行设置,需要如下两步:
1.修改对象(http)的安全上下文
chcon -R -t httpd_sys_rw_content_t /var/www/html/moodledata
2.设置权限
chmod -R 777 /var/www/html/moodledata
问题三:安装数据库时出现:mysqli_connect(): (HY000/2002): Permission denied
因为没有关闭selinux,通常情况下载安装完CentOS7后,默认情况下SElinux是启用状态。
查看状态:# sestatus
Current mode: enforcing
执行关闭:setenforce 0
Current mode: permissive
可以永久性关闭:将/etc/selinux/config中SELINUX设置为disabled
SELINUX=disabled