3年前寫了一篇《Windows下搭建PHP開發環境》之后就再也沒有碰過PHP了,最近新發布了PHP7然后回去看了一下之前寫的文章,發現很多配置都已經過時,所以就打算再寫一篇新的。
安裝准備 – 系統:Windows 10
- Apache 上Apache官網才發現官方已經不提供Apache服務器的安裝包,只有源碼編譯,也同時推薦了一些其他開發者提供的安裝包,如ApacheHaus、Apache Lounge等。我這里用的是Apache Lounge的安裝包httpd-2.4.18-win64-VC14.zip,同時系統必須安裝了C++ Redistributable Visual Studio 2015 Update 1: VC_redist.x64.exe,最后還有后面需要用到的FastCGI模塊mod_fcgid-2.3.9-win64-VC14.zip
- PHP php-7.0.0-Win32-VC14-x64.zip
- MySQL mysql-5.7.10-winx64.zip
安裝軟件
安裝Apache
首先解壓httpd-2.4.18-win64-VC14.zip,為了方便管理我將解壓得到的文件夾Apache24放到C:/PHPServer目錄下。同時對Apache配置文件httpd.conf中用到路徑的配置作相應修改:
ServerRoot "C:/PHPServer/Apache24" Document Root "C:/PHPServer/Apache24/htdocs" <Diretory "C:/PHPServer/Apache24/htdocs"> ... </Diretory>
以管理員身份啟動命令提示符,使用cd C:/PHPServer/Apache24/bin切換到apache的命令目錄,在命令行輸入httpd.exe即可啟動apache服務器。
在瀏覽器輸入地址http://localhost,出現It works!即代表apache啟動成功。
這種方式並沒有將apache安裝成為系統服務,命令行退出了服務也就結束了。安裝成服務也非常簡單,只需要執行http.exe -k install,卸載服務http.exe -k uninstall。安裝成功后啟動bin目錄下的ApacheMonitor可以對服務器進行管理。
安裝Mysql
Mysql官方提供兩種安裝方式,一種是常規的msi安裝包的方式,另一種是壓縮包形式的免安裝方式。我之前的一篇博客就是用的msi安裝包,所以這里嘗試一下壓縮包的形式安裝。
首先解壓mysql-5.7.10-winx64.zip,為了方便執行Mysql命令可以將Mysql的bin目錄添加到系統的環境變量Path。安裝Mysql前需要指定數據文件的存放路徑,默認路徑為Mysql目錄下的data目錄,需要手工創建這個目錄。目錄創建好后可以開始初始化數據了:
// 初始化數據庫文件 mysqld --initialize-insecure --console
常用參數說明
- –console 在命令行輸出執行的信息
- –initialize-insecure 初始化數據不生成登錄密碼
- –initialize 初始化數據並隨機生成登錄密碼
- –user=root 指定數據庫超級用戶,默認root,也可以改成別的帳號
- –defaults-file=C:/Program Files/Mysql/my.cnf 指定mysql配置文件
- –basedir 指定安裝目錄
- –datadir 指定數據存放目錄
mysql配置文件樣例(my.cnf)
[mysqld] basedir=C:/Program Files/MySQL datadir=D:/MySQLdata
數據初始完成后再重新執行一次mysqld啟動數據庫,使用mysqladmin -u root -p shutdown關閉數據庫,數據庫啟動完成后需要修改root密碼
// 如果使用--initialize初始化,需要輸入密碼登錄 mysql -u root --skip-password // 修改用戶密碼為123456 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
最后將Mysql安裝為系統服務 mysqld --install (安裝前先關閉mysql)
安裝Php
在之前的博客中采用的是php作為Apache模塊安裝運行,從php官網了解到,php7作為Apache模塊安裝時僅支持VC6以下的Apache,不能和VC9以上的Apache一起運行。所以推薦采用fastcgi形式安裝。
首先解壓php-7.0.0-Win32-VC14-x64.zip到C:/PHPServer/並重命名為php7。將前面准備好的FastCGI模塊mod_fcgid-2.3.9-win64-VC14.zip解壓得到mod_fcgid.so文件拷貝到Apache的modules文件夾。修改Apache配置文件httpd.conf添加FastCGI配置:
LoadModule fcgid_module modules/mod_fcgid.so <IfModule fcgid_module> FcgidInitialEnv PHPRC "C:/PHPServer/php7" FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 AddType application/x-httpd-php .php <Files ~ "\.php$>" AddHandler fcgid-script .php FcgidWrapper "C:/PHPServer/php7/php-cgi.exe" .php </Files> </IfModule>
為站點根目錄的Options增加ExecCGI,我設置的站點目錄為C:/PHPServer/Apache24/htdocs
<Directory "C:/PHPServer/Apache24/htdocs"> AllowOverride All Options -Indexes +ExecCGI </Directory>
找到DirectoryIndex index.html改為DirectoryIndex index.php index.html 站點默認加載index.php
Apache配置已經完成接着要配置php7,php的配置文件為php.ini,文件夾中並沒有這個文件,但提供了php.ini-development和php.ini-production這兩個文件作為參考,我們直接將php.ini-development改為php.ini作為配置文件即可。配置文件可以設置php擴展庫,需要指定擴展庫所在的目錄。
找到php.ini中關於extension_dir的注釋,在后面直接添加extension_dir="C:/PHPServer/php7/ext"
開啟相應的庫只需要去除前面的分號(注釋)即可
extension=php_curl.dll extension=php_gd2.dll extension=php_mbstring.dll extension=php_mysql.dll extension=php_xmlrpc.dll
最后設置相應的時區date.timezone = Asia/Shanghai
配置完成,重啟Apache使配置生效。在站點目錄新建index.php文件,並輸入以下內容
<?php
phpinfo();
?>
在配置中如果目錄帶有空格,需要使用 \ 進行轉義
IDE
就我所知,目前市場上比較好用的IDE應該是jetbrains開發的PhpStorm,不過軟件的授權還是挺貴的。之前用過的Zend studio也是不錯的選擇,當然足夠熟練的話SublimeText或Vim都可以開發的很好,IDE並不是最關鍵的。
新博客地址:http://arenby.com

