在windows和centos系统中搭建PHP7开发环境_php用contos和win-程序员宅基地

技术标签: PHP  

在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

注释:当需要拆卸重新安装时:第一步:yum list | grep httpd  第二步: yum erase httpd.x86_64  第三步:重新安装

二、PHP安装

1、yum安装(这种安装默认是装php5,所以一般不用这种安装方式)
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

 

2、源码安装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

3、拆卸php

首先这个命令是删除不干净的:yum remove php

必须使用:rpm -qa|grep php 出现 :

php-pdo-5.1.6-27.el5_5.3

php-mysql-5.1.6-27.el5_5.3

然后逐个删除:

rpm -e php-mysql-5.1.6-27.el5_5.3

rpm -e php-pdo-5.1.6-27.el5_5.3

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kunzai6/article/details/80039408

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;stdlib.h&gt;#include&lt;malloc.h&gt;#include&lt;iostream&gt;#include&lt;stack&gt;#include&lt;queue&gt;using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签