很多站长朋友们都不太清楚php集成环境配置,今天小编就来给大家整理php集成环境配置,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 如何在Windows下配置搭建PHP环境 2、 详解php集成环境和自己配置的区别 3、 windows server 2012上怎样装php集成环境 4、 如何配置一个 Docker 化持续集成的 PHP 开发环境 如何在Windows下配置搭建PHP环境前言:网络上提供了各种版本名为wamp的组合包,就是下载下来一路点下一步就安装好了直接应用的那种人家配置好了的软件包,为了学习本人并不太建议此类方法。
一、首先下载php5.3组件(现在已经更新到7点几版本了)
1、下载软件包,建议直接到官网
2、下载时注意选择与你系统相配合的包:
下载完后解压到一个路径 例如 E:\LAMP\php5.3
3、在解压后的路径中找到php.ini-development,重命名为php.ini。
首先打开php.ini,找到:
; On windows:
;
extension_dir = "ext"
修改为:
; On windows:
extension_dir = " E:/LAMP/php5.3/ext"
即去掉extension_dir前面的分号(注意斜杠方向),表示指定PHP扩展包的具体目录,以便调用相应的DLL文件。
4、由于默认PHP并不支持自动连接Mysql,需开启相应的扩展库功能,比如php_mysql.dll等,即将:
extension=php_curl.dll //CURL,客户端 URL
库函数库
extension=php_gd2.dll
//GD绘图函数模块
extension=php_mbstring.dll
//多字节函数模块
extension=php_mysql.dll
//MySql函数模块
extension=php_mysqli.dll
//MySqli函数模块
extension=php_pdo_mysql.dll //PDO
MySql函数模块
extension=php_pdo_odbc.dll //PDO
ODBC函数模块
extension=php_xmlrpc.dll
//XML-RPC函数库
extension=php_xsl.dll
//XSL函数模块这些extension之前的分号(;)去除。
至此在Windows 7上php的环境配置就算完成了,但是光完成这些配置是不够的,我们需要Apache支持PHP,所以还需要在Apache配置文件中完成相应的PHP配置。以下是配置Apache以支持PHP:
二、安装与配置Apache2.2
(现在已经更新到2.4版本了,安装时稍有不同,见本站另一笔记)
1、下载软件包,建议直接到官网 上下载,因为这是开源软件的安全性问题,如果用于生产环境则强烈建议到官网下载。
2、下载时注意选择与你系统相配合的包,如.tar.gz的是用于Linux环境的,httpd-2.2.31-win32-src.zip用于windows环境,还有win32表示用于32位win7系统。双击默认安装,也自己可以自定义一个路径
例如 E:\LAMP\apache。
3、安装完后找到Apache安装目录下的conf文件夹下的httpd.conf,打开:
在#LoadModule
vhost_alias_module
modules/mod_vhost_alias.so下添加如下(路径适你自己的情况而定):
LoadModule php5_module
"E:/LAMP/php5.3/php5apache2_2.dll"
PHPIniDir "E:/LAMP/php5.3"
AddType
application/x-httpd-php .php .html
.htm
我们在PHP目录下可以看到多个php5apache的DLL文件,由于我们使用的是Apache2.2.17,所以我们当然需要使php5apache2_2.dll,接着指定PHP的安装目录以及执行的程序扩展名。
4、我们应该知道默认Apache服务器执行WEB主程序的目录为Apache2.2/htdocs,所以如果当你的WEB主程序目录变更时,我们需要修改相应的Apache配置.
5、最后修改具体的index文件先后顺序:DirectoryIndex
index.html修改为:DirectoryIndex index.php index.html
6、重启Apache服务器
至此,在Apache服务器上PHP环境配置工作就完成了,你只需要在 Apache2.2/htdocs
目录下新建一个PHP文件,写入:<?phpphpinfo();?>
然后在游览器中输入12.0.0.1,就可以看到PHP的具体配置页面了,代表在Window
7上PHP环境配置工作就算完成了。
三、安装与配置Mysql 5.1数据库软件
(现在已经更新到5.5版本了,安装较简单,如果上面步骤都配置好了运行正常了的话可以下载一个对应版本的MyPhpAdmin程序包放到E:/www下然后在游览器中输入12.0.0.1登入后新建或管理数据库)
1、下载软件包,建议直接到官网
上下载,这个链接有各个版本,因为这是开源软件的安全性问题,如果用于生产环境则强烈建议到官网下载。
2、
验证PHP是否能连接Mysql,你可以在index.php中创建如下代码:
<?php
$connect=mysql_connect("127.0.0.1","root","你的数据库密码");
if(!$connect)
echo "Mysql Connect Error!";
else echo
"连接成功";
mysql_close();
?>
然后在游览器中输入127.0.0.1,看到:连接成功字样就说明PHP连接Mysql就算成功了。
详解php集成环境和自己配置的区别集成环境就是你安装一个程序,它就自带了php所需要的软件,不需要你做任何的设置,直接使用
例如:xampp wamp你安装它,它就自带了php apache mysql这三个软件
自己配置就需要你自己一个一个的安装,配置。
那么到底PHP集成环境与自己安装的有啥区别捏?
就好比,你喜欢吃蛋糕,蛋糕你可以自己在家里做,也可以到外面买现成的。所以你如果对蛋糕比较了解,那么你就可以做出比外面店里还要好吃的蛋糕。相反,你如果不了解蛋糕的制法,你还是老老实实去店里买现成的吧。
PHP集成环境也是一样的道理,如果你对PHP环境比较了解,自己配置就行了,如果你对相关配置不太了解,可以直接使用现成的PHP集成环境,不过大部分的集成环境安装包体积比较小,是因为对其进行了精简,阉割了相关组件,是不完整的,而且大部分PHP集成环境主要目的就是用作本地调试的,如果你想要直接在服务器上搭建网站,建议使用一些比较完整无阉割版的PHP集成环境,比如PHPWAMP这种绿色集成环境(安装包没那么小,所集成的所有组件都是完整版的,无阉割)。
总而言之,如果你自认为对PHP环境的配置很了解,那么请自行配置,如果你对此方面的知识有所欠缺,可以直接使用PHP集成环境。
windows server 2012上怎样装php集成环境软件及平台要求:
1、平台:windows 2012 server datacenter(数据中心版)
2、环境:iis8 php5.3.20 rewrite_2.0_rtw_x64 phpMyAdmin-3.5.5
3、数据库:mysql 5.5.28
4、硬盘:要求全部用NTFS格式分区
5、测试用程序:discuz x2.5
配置顺序:
1、将所以分区格式化为 NTFS格式 (此步省略)
2、安装操作系统 windows server 2012 datacenter (此步省略)
3、安装 iis
4、安装 php5.3.20
5、安装 mysql5.5.28
6、安装 phpMyAdmin-3.5.5-all-languages
7、在C盘以外的分区新建一个文件夹(随便命名,用来作为网站根目录)
8、配置相关文件夹权限 例如:IUSR 、NETWORK SERVICE 修改权限
测试环境是否完全成功:
1、安装discuz x2.5
2、用phpmyadmin操作 mysql5进行表和库的操作
下面开始正题,偶现在配置 iis8 php环境。
首先准备好相关软件和环境,再配置,这些软件需要你自己去下载,网上都能找到:)由于全部都是开源软件,所以都使用最新版本,这样也有利于 php环境的配置。
一、
先安装 iis8.0,这是 Windows server 2012的默认服务器,性能相对上一代的 iis7.5,有进一步的提升。打开 服务器管理器 - 添加角色和功能 - 找到 服务器角色 - 应用程序服务器 勾选,下一步 勾选 .net framework 3.5进行安装,这个需要点时间,请耐心等待。
由于有点时间,看看 Windows server 2012系统长啥样子?刚刚就是 ie10,速度很不错,几乎和 Google Chrome相当。
任务管理器的外观和内容也比之前的 2008r2 要详细些。2012最大的特点就是启动快速和开始菜单,其余各方面效率确实要高于 2008r2,但并不是完美的,比方删除较大和较多文件时,那速度要比任何操作系统都慢,呵呵。OK!经过近 10分钟后,终于安装成功。下面要安装 iis,2012的 iis在应用程序服务器下面,名称是 Web服务器IIS支持,刚才安装 .net framework 3.5,是为了
以后能够使用低版本的应用程序池子,方便管理服务器和调试各种程序。将需要的都勾选,这个安装很快,一下就好了。iis8.0,是目前微软最新的 web服务器环境,它在管理工具里面可以找到,
打开 localhost 或 127.0.0.1,如果看到 iis8 大图标页面,就表示 iis安装成功!应用程序池一共有 6个,如果当作正规 web服务器工作,就必须关闭不需要或不用的,否则会增加服务器负担,一般 DefaultAppPool是默认的应用程序池,这个是效率最好的一个,所以不要新建也不要删除或修改它,对于喜欢 优化服务器性能的朋友来说,什么都用默认就是最高效的,至于是否最好,就要看实际需求。Service UnavailableHTTP Error 503. The service is unavailable.
//应用程序池 关闭之后提示。HTTP 错误 404.2 – Not Found
由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。
//asp.net 4.0拒绝之后提示。2012 iis8.0默认安装后,很多服务和组件就已经设置好了,不需要再作设置,但还是有部分未设置,这就需要我们手动来设置。
1、MIME类型偶只加了个 f4v/videox-flv,这个是 flash H.264格式的,和 flv一样的,只是质量高些。
2、默认文档 – 添加 index.asp index.php default.php这 3个文件类型,这是索引入口文件。
其它的就不作详细介绍,因为那些和 php无关的,至于它们的作用,偶只想说,米个组件都有它的功能,要不微软也不会提供这么多。
rewrite_2.0_rtw_x64.msi 这个软件是 iis的伪静态组件,现在下载并安装。有点难找,偶 E文不好哦~
官方网址: … -url-rewrite-module
就用刚刚下载的最新安装包,URL Rewrite安装完成,全英文界面,但不影响功能。
二、
现在就开始配置 php了,偶之前下载了最新的 php5.3.20 nts安装版本,现在直接安装。下一步 下一步 选择 iis FastCGI,下一步 下一步。完成。然后打开 php.ini,找到 short_open_tag,是将 Off改成 On开启,再找到 upload_max_filesize改成你需要的,当然无论改多大,实际并不可能上传那么大的文件,因为涉及到网速、接口和转发以及服务器本身的多种限制。一定要记得保存 Ctrl + s,偶保存速度很快的,而且一般是 5秒保存一次,虽然麻烦些,但这样避免停电或无响应造成不必要的麻烦。
安装 mysql5.5.28,这个和 php一样,下一步 下一步 下一步,当然要勾选 Windows开机启动和设置下密码。OK,安装完成。
安装 phpMyAdmin-3.5.5-all-languages,这个就更容易了,复制进去,然后添加个权限就行,不过得新建个文件夹子,叫作 wwwroot,用它来作为网站根目录。添加相关权限,例如:IUSR 、NETWORK SERVICE 修改权限。另外还有个文件夹 Windows\Temp\ 添加 IUSR修改权限。设置好之后,将 iis目录修改至 当前文件目录,打开 iis信息服务(IIS)管理器,点开 网站 默认网站 – 高级设置 – 物理路径,这里修改成刚刚新建的 wwwroot文件夹位置,然后打开 phpmyadmin,就能够检测 php环境是否配置成功,OK,php环境配置成功。三、
由于 php环境已经配置成功,但是否完全成功,必须使用 1 - 2种程序测试,现在开始安装 discuz x2.5 UTF-8版本。论坛程序一般需要支持伪静态,现在配置。
HTTP 错误 404.0 – Not Found
您要找的资源已被删除、已更名或暂时不可用。
// discuz x2.5开启静态化后提示这个,则说明 iis8 的 web.config或 URL Rewrite组件问题,检查就可以配置好,将 discuz x2.5伪静态文件 web.config放至网站根目录后,URL Rewrite组件里面出现了伪静态规则,伪静态已经配置成功。
测试程序上传 10M单张图片和 另一个尺寸达到 5994_8774px的图像,均不成功,可能是由于程序本身的问题,最后上传一个 002_3000px.png则成功,但在文件编辑器内无法显示图片,发布后可以看到,这可以确实是程序本身问题,太大的图像是无法显示的,确实太大了,呵呵。
至此,整个 iis8 php环境配置完成,其实真正配置的时间是比较少的,但偶却花了太多时间在其它上面,呵呵。希望此教程能够帮助你配置出自己的 php环境,至于真正的服务器能否这样配置呢?答案是肯定的,但那些略有不同,只是细节上的问题,例如:端口,后台绑定 hosts,防火墙设置、杀毒软件设置、补丁和服务器软件优化等等,就给个实例吧:)不知道能否看见,具体的都需要自己的去做,最简单就是最高效的,这是所有Windows系统的基本原则,好比刚刚安装的系统,是最快的,那么环境软件也一样,刚刚安装的,是最优配置,但依据程序功能的实现和访问速度,也需要具体去配置,而那些配置,在偶看来,就是 10 - 20分钟的事情,无论多么复杂或者网站系统软件全部米了,恢复也只要 20分钟左右。
如何配置一个 Docker 化持续集成的 PHP 开发环境首先,我们得知道什么才是好的开发环境, 对于我而言,一个好的开发环境需要具备以下几个特点:
可随意使用。我必须可以随意删除和创建新的环境。
快速启动。我想要用它工作时候,它立马就能用。
易于更新。在我们行业中,事物发展变化非常快,必须能让我很容易将我的开发环境更新到新的软件版本。
而Docker都支持以上这些特点,甚至更多。你几乎可以即时销毁和重建容器,而更新环境只需要重建你当前使用的镜像即可。
什么是PHP开发环境
目前Web应用错综复杂,PHP开发环境需要很多的东西,为了保证环境的简单性,需要做各种各样的限制。
我们这次使用Nginx、PHP5-FPM、MySQL来运行Synmfony项目。由于在容器中运行命令行会更复杂,所以这方面的内容我会放到下一篇博客中再说。
Pet 与 Cattle
另一个我们要讨论的重点是:我们要把开发环境部署在多容器还是单容器中。 两种方式各有优点:
单容器易于分发、维护。因为它们是独立的,所有的东西都运行在同一个容器中,这点就像是一个虚拟机。但这也意味着,当你要升级其中的某样东西(比如PHP新版本)的时候, 需要重新构建整个容器。
多容器可以在添加组件时提供更好的模块化。因为每个容器包含了堆栈的一部分:Web、PHP、MySQL等,这样可以单独扩展每个服务或者添加服务,并且不需要重建所有的东西。
因为我比较懒,加上我需要在我的笔记本上放点别的内容,所以,这里我们只介绍单个容器的方法。
初始化工程
首先要做的是初始化一个新的Symfony工程. 推荐的方法是用composer的create-project命令。本来可以在工作站上安装composer,但是那样太简单了。这次我们通过Docker来使用它。
我之前发过一篇关于Docker命令的文章:make docker commands(好吧,我说谎了,我本来把它写在这篇文章中了,然后觉得把它独立出来会比较好)。
不管怎么样,你可以读一下。接下来如果还没有composer命令的话,你可以创建一个属于自己的composer 别名。
$ alias composer="docker run -i -t -v \$PWD:/srv ubermuda/composer"
现在你可以初始化Symfony工程了:
$ composer create-project symfony/framwork-standard-edition SomeProject
帅呆了!下面来点实在的工作。(省略了博主自娱自乐的一堆balabla....原文:Awesome. Give yourself a high-five, get a cup of coffee or whatever is your liquid drug of choice, and get ready for the real work.)
容器
构建一个运行标准Symfony项目且自给自足的容器相当容易,只需要安装好常用的Nginx、PHP5-FPM和MySQL-Server即可,然后把预先准备好的Nginx的虚拟主机配置文件扔进去,再复制一些配置文件进去就完事了。
本容器的源代码在GitHub上的 ubermuda/docker-symfony仓库中可以找到。 Dockerfile 是Docker构建镜像要用到的配置文件,我们来看一下:
FROM debian:wheezy
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update -y
RUN apt-get install -y nginx php5-fpm php5-mysqlnd php5-cli mysql-server supervisor
RUN sed -e 's/;daemonize = yes/daemonize = no/' -i /etc/php5/fpm/php-fpm.conf
RUN sed -e 's/;listen\.owner/listen.owner/' -i /etc/php5/fpm/pool.d/
RUN sed -e 's/;listen\.group/listen.group/' -i /etc/php5/fpm/pool.d/
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
ADD vhost.conf /etc/nginx/sites-available/default
ADD supervisor.conf /etc/supervisor/conf.d/supervisor.conf
ADD init.sh /init.sh
EXPOSE 80 3306
VOLUME ["/srv"]
WORKDIR /srv
CMD ["/usr/bin/supervisord"]
我们通过扩展 debian:wheezy 这个基础镜像开始,然后通过一系列的sed命令来配置Nginx和PHP5-FPM。
RUN sed -e 's/;daemonize = yes/daemonize = no/' -i /etc/php5/fpm/php-fpm.conf
RUN sed -e 's/;listen\.owner/listen.owner/' -i /etc/php5/fpm/pool.d/
RUN sed -e 's/;listen\.group/listen.group/' -i /etc/php5/fpm/pool.d/
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
这里我们要做两件事。 首先配置PHP5-FPM和Nginx让他们在前台运行以便supervisord可以追踪到他们。
然后,配置PHP5-FPM以指定的用户运行Web-Server,并处理好文件权限。
接下来需要安装一组配置文件,首先是Nginx的虚拟主机配置文件vhost.conf:
server {
listen 80;
server_name _;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
root /srv/web;
index app_dev.php;
location / {
try_files $uri $uri/ /app_dev.php?$query_string;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
}
因为我们不需要域名,所以把server_name设成了_(有点像perl的$_占位符变量), 并配置根目录(document root)为/svr/web, 我们会把应用程序部署在/srv下,剩下的就是标准的Mginx + PHP5-FPM配置.
因为一个容器每次只能运行一个程序, 我们需要supervisord(或者任何别的进程管理器,不过我比较中意supervisord)。幸运的是, 这个进程管理器会产生我们需要的所有进程!下面是一小段supervisord的配置:
[supervisord]
nodaemon=true
[program:nginx]
command=/usr/sbin/nginx
[program:php5-fpm]
command=/usr/sbin/php5-fpm
[program:mysql]
command=/usr/bin/mysqld_safe
[program:init]
command=/init.sh
autorestart=false
redirect_stderr=true
redirect_stdout=/srv/app/logs/init.log
这里我们需要做的是定义所有的服务, 加上一个特殊的program:init进程,它不是一个实际的服务,而是一个独创的运行启动脚本的方式。
这个启动脚本的问题在于,它通常需要先启动某些服务。比如,你可能要初始化一些数据库表,但前提是你得先把MySQL跑起来,一个可能的解决办法是,在启动脚本中启动MySQL,然后初始化表,然后为了防止影响到supervisord的进程管理,需要停掉MySQL,最后再启动supervisord。
这样的脚本看起来类似下面这样:
/etc/init.d/mysql start
app/console doctrine:schema:update --force
/etc/init.d/mysql stop
exec /usr/bin/supervisord
看起来丑爆了有木有,咱换种方式,让supervisor来运行它并且永不重启。
实际的init.sh脚本如下:
#!/bin/bash
RET=1
while [[ RET -ne 0 ]]; do
sleep 1;
mysql -e 'exit' > /dev/null 2>1; RET=$?
done
DB_NAME=${DB_NAME:-symfony}
mysqladmin -u root create $DB_NAME
if [ -n "$INIT" ]; then
/srv/$INIT
fi
脚本先等待MySQL启动,然后根据环境变量DB_NAME创建DB,默认为symfony, 然后在INIT环境变量中查找要运行的脚本,并尝试运行它。本文的结尾有说明如何使用这些环境变量。
构建并运行镜像
万事俱备只欠东风。我们还要构建Symfony Docker镜像, 使用docker build命令:
$ cd docker-symfony
$ docker build -t symfony .
现在,可以使用它来运行你的Symfony工程了:
$ cd SomeProject
$ docker run -i -t -P -v $PWD:/srv symfony
我们来看看这一连串的选项分别是干嘛的:
-i 启动交互(interactive)模式, 也就是说,STDIO(标准输入输出)连接到了你当前的终端上。当你要接收日志或者给进程发送信号时,它很有用。
-t 为容器创建一个虚拟TTY, 它跟-i是好基友,通常一起使用。
-P 告诉Docker守护进程发布所有指定的端口, 本例中为80端口。
-v $PWD:/srv 把当前目录挂载到容器的/srv目录。挂载一个目录使得目录内容对目标挂载点可用。
现在你还记得之前提到的DB_NAME和INIT环境变量了吧,干嘛用的呢:用于自定义你的环境。 基本上你可以通过 docker run的-e选项在容器中设置环境变量,启动脚本会拿到环境变量,因此,如果你的DB名为some_project_dev, 你就可以这么运行容器:
$ docker run -i -t -P -v $PWD:/srv -e DB_NAME=some_project_dev symfony
INIT 环境变量就更强大了,它允许你启动时运行指定的脚本。比如, 你有一个bin/setup脚本运行composer install命令并且设置数据库schema:
#!/bin/bash
composer install
app/console doctrine:schema:update --force
用-e来运行它:
$ docker run -i -t -P \
-v $PWD:/srv \
-e DB_NAME=some_project_dev \
-e INIT=bin/setup
注意,-e选项可以在docer run中多次使用,看起来相当酷。另外,你的启动脚本需要可执行权限(chmod +x)。
现在我们通过curl发送请求到容器,来检查一下是否所有的东西都像预期一样工作。首先,我们需要取到Docker映射到容器的80端口的公共端口,用docker port命令:
$ docker port $(docker ps -aql 1) 80
0.0.0.0:49153
docker ps -aql 1 是个好用的命令,可以方便的检索到最后一个容器的id, 在我们的例子中,Docker 把容器的80端口映射到了49153端口。我们 curl 一下看看。
$ curl
You are not allowed to access this file. Check app_dev.php for more information.
当我们不从localhost(译者注:容器的localhost)访问dev controller时,得到了Symfony的默认错误消息,这再正常不过了, 因为我们不是从容器内部发送 curl 请求的, 所以,可以安全的从前端控制器web/app_dev.php中移除这些行。
// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
这些行阻止了任何从localhost以外的地方访问dev controller。
现在再curl的时候就可以正常工作了,或者用浏览器访问 :
很容易吧! 现在我们可以快速的启动、更新环境了,但还是有很多地方需要改进。
关于php集成环境配置的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php集成环境配置 win10 php集成环境的详细内容...