PHP开发环境搭建

文章链接:http://www.liuschen.com

最近买了个虚拟主机,但是买回来后却发现不支持java程序,只支持PHP,想想也不是想做什么复杂的东西,所以将就着先用用看。毕竟,所有语言都是共通的。

环境安装

下载httpd-2.4.29-Win32-VC15

下载php-5.6.32-Win32-VC11-x64

Apache配置

注意:下面安装服务必须使用管理员权限,所以打开CMD的时候要用管理员的身份打开

同java一样,先配置了环境变量,然后打开CMD(必须使用管理员权限),不然不能安装服务:

首先配置:httpd.conf
ServerRoot "httpd的根目录"
DocumentRoot “根目录下同样位置”
以及其下的Directory路径也配置相同

httpd -k install(将apache注册为window的服务)

经常出现的错误是端口占用,这时候只需要更改默认的端口即可(至少两处)。

Errors reported here must be corrected before the service can be started

这句话并不是错误,而是提示如果下面有错误要先解决。

httpd -k start

启动(必须先安装服务),可以访问了,通过127.0.0.1:端口

继续配置httpd.conf
DirectoryIndex index.html 后添加index.php index.htm
ScriptAlias后目录同样修改为本机的相对应目录,后面Directory里面的当然也要修改

文件尾部最后添加对PHP支持:

LoadModule php5_module "本机php路径/php5apache2_4.dll"
AddType application/x-httpd-php .php .html .htm
PHPIniDir "本机php路径"

最后一句是为了找PHP根目录下的PHP.ini文件,是由php.ini-production重命名后得到,添加后如果提示不能载入php5_module,那么要么是window下的依赖没配置好(单独启动php试试),也可能就是我遇到的版本搭配问题,网上有关于这个问题的解答,我在版本号上的选择是没错的,只是,64位和32位的弄混了。应该下载httpd-2.4.29-Win64-VC15,才对,这是它起名造成的误解。

eclipse for PHP调试环境的搭建

配置完调试没反应,修改php.ini文件,在结尾添加:

;zend_extension = F:\programer4\php-5.6.32-Win32-VC11-x64\ext\php_xdebug.dll
zend_extension_ts = F:\programer4\php-5.6.32-Win32-VC11-x64\ext\php_xdebug.dll
;extension = php_xdebug.dll
[Xdebug]
xdebug.auto_trace = 1
xdebug.show_exception_trace = 1
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.collect_vars = 1
xdebug.collect_return = 1
xdebug.collect_params = 1
xdebug.trace_output_dir=”D:/xDebugLog”
xdebug.profiler_output_dir=”D:/xDebugLog”
xdebug.profiler_enable= 1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_mode = req
xdebug.remote_handler=dbgp

注意:配置文件中的”;”为注释符号,end_extension要根据自己下载的放出合适的版本(TS线程安全和非线程安全)

xdebug.remote_port=9000

远程端口要和eclipse中设置一致,

选中php文件,点击Debug As->PHP Script执行调试

错误

使用mysqli连接数据库错误:

Call to undefined function mysqli_connect()错误

解决:

在php.ini文件中extension=php_mysqli.dll去掉前面的分号,然后再添加extension_dir="ext"

万网数据库访问遇到问题:

using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password')

重新修改数据库密码,并把密码设置为41位加密的

服务端错误:

Call to undefined function mysqli_connect()错误

开始我还以为是同一个问题,后来梳理清楚了,发现解决上面这个问题的方法,只是在eclipse中执行脚本时运行通过了(eclipse中关联php.ini文件了)。但是一旦在服务器上让网页访问还是会出现这个问题。

更换PHP版本

鉴于阿里云上的PHP没有5.6版本的支持,最终选择7.0版本作为使用版本,因为阿里云最高支持到7.1版本,为了避免麻烦,使用7.0版的。
配置依照上面配置只是php5换成php7

Loading Disqus comments...
Table of Contents