目前,php的最新版本是7.0.10,Apache的最新版本是2.4.23,MySQL的最新版本是5.7.14,好久没在Windows环境下搭建AMP环境了,这次准备用非线程安全的Apache+fcgid来完成搭建,Windows我们选择Windows 7 ,其他在Windows 8.1和Windows 10下,搭建方法应该是完全相同的(但是不支持Windows XP);所有软件均为64位软件。
在Windows 7下进行PHP环境搭建,首先需要下载PHP代码包和Apache与Mysql的安装软件包。
PHP版本:我们选择去官方网站下载,下载页面http://windows.php.net/download/,你也可以直接点击这里下载7.0.10的版本。
Apache2.4版本现在官方已经不提供现成的二进制安装程序了,现在官方推荐主要是去apachelounge去下载,目前的最新版本2.4.23请直接下载。
Apache使用的fcgid模块下载地址也在apachelounge,目前最新版本是2.3.9,点击直接下载。
PHP7和Apache运行需要微软VC14运行库,下载地址在微软,选择64位的版本就可以了。
Mysql版本请去官方下载,目前的最新版本5.7.14,我们直接选择绿色压缩包“mysql-5.7.14-winx64.zip”下载。
本机的IP是192.168.42.81
PHP环境搭建第一步:安装VC14运行环境,这个这里就不多说了。
php环境搭建第二步:解压httpd-2.4.23-win64-VC14.zip,把其中的Apache24文件夹放到C盘的根目录。
php环境搭建第三步:解压mod_fcgid-2.3.9-win64-VC14.zip,把其中的mod_fcgid.so文件放到c:\Apache24\modules\文件夹下面。
PHP环境搭建第四步:Windows 7下安装Apache服务。
把Apache加入服务记得得以管理员权限运行cmd。
先cd c:\Apache24\bin\,再httpd -k install安装服务,如下图:
报错没关系,这里的报错主要是因为我们没有指定servername导致的,待会配置的时候配置下就行了。
配置文件如下:
ServerRoot "c:/Apache24" Listen 80 LoadModule access_compat_module modules/mod_access_compat.so LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule cgi_module modules/mod_cgi.so LoadModule dir_module modules/mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule fcgid_module modules/mod_fcgid.so <IfModule unixd_module> User daemon Group daemon </IfModule> ServerAdmin xxy@yyshell.com ServerName 192.168.42.81:80 <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "c:/Apache24/htdocs" <Directory "c:/Apache24/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.php index.html </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "logs/error.log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access.log" common </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" </IfModule> <IfModule cgid_module> </IfModule> <Directory "c:/Apache24/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule> <IfModule proxy_html_module> Include conf/extra/proxy-html.conf </IfModule> <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;" FcgidInitialEnv SystemRoot "C:/Windows" FcgidInitialEnv SystemDrive "C:" FcgidInitialEnv TEMP "C:/WINDOWS/Temp" FcgidInitialEnv TMP "C:/WINDOWS/Temp" FcgidInitialEnv windir "C:/WINDOWS" FcgidIOTimeout 64 FcgidConnectTimeout 16 FcgidMaxRequestsPerProcess 1000 FcgidMaxProcesses 50 FcgidMaxRequestLen 8131072 FcgidInitialEnv PHPRC "c:/php" FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 <FilesMatch "\.php$"> SetHandler fcgid-script FcgidWrapper "c:/php/php-cgi.exe" </FilesMatch>
在这里主要配置Network Domain、Server Name、Email地址以及Apache服务的占用端口,默认为80端口,你可以根据需要配置在其他端口,Apache的安装目录你可以使用默认目录或根据需要自行选择安装目录。
PHP环境搭建第五步:Windows 7下安装Mysql服务。
解压mysql-5.7.14-winx64.zip里面的文件夹到C盘根目录,把解压后的文件夹重命名为MySQL,这样,mysql的路径为c:\MySQL
在c:\MySQL下建立文本文件my.ini,内容如下:
[client] no-beep port=3306 [mysql] default-character-set=utf8 [mysqld] port=3306 datadir=C:/MySQL/Data character-set-server=utf8 default-storage-engine=INNODB sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" log-output=FILE general-log=0 general_log_file="ADAGENE-BIO-20.log" slow-query-log=1 slow_query_log_file="ADAGENE-BIO-20-slow.log" long_query_time=10 log-error="ADAGENE-BIO-20.err" server-id=1 secure-file-priv="C:/MySQL/Uploads" max_connections=151 query_cache_size=0 table_open_cache=2000 tmp_table_size=277M thread_cache_size=10 myisam_max_sort_file_size=100G myisam_sort_buffer_size=541M key_buffer_size=8M read_buffer_size=64K read_rnd_buffer_size=256K innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=1M innodb_buffer_pool_size=8M innodb_log_file_size=48M innodb_thread_concurrency=9 innodb_autoextend_increment=64 innodb_buffer_pool_instances=8 innodb_concurrency_tickets=5000 innodb_old_blocks_time=1000 innodb_open_files=300 innodb_stats_on_metadata=0 innodb_file_per_table=1 innodb_checksum_algorithm=0 back_log=80 flush_time=0 join_buffer_size=256K max_allowed_packet=4M max_connect_errors=100 open_files_limit=4161 query_cache_type=0 sort_buffer_size=256K table_definition_cache=1400 binlog_row_event_max_size=8K sync_master_info=10000 sync_relay_log=10000 sync_relay_log_info=10000
如何把绿色版MySQL加入服务,请访问本站的这篇文章。
打开cmd(管理员权限)初始化数据库:
cd /d c:\MySQL\bin mysqld --initialize-insecure sc start MySQL mysqladmin -u root password NEWPASSWD
登录后创建数据库,创建可以访问数据库的用户和密码,这对于wordpress这样的应用,建议设定专门的数据库和专门的用户。
create database wordpress; grant all privileges on wordpress.* to wordpress@localhost identified by 'YOURPASSWD';
PHP环境搭建第六步:安装php
解压php-7.0.10-nts-Win32-VC14-x64.zip里面的文件到c:\php中,没有c:\php就新建这个文件夹。
复制文件夹下的php.ini-production文件,重命名为php.ini。
编辑php.ini文件,php的配置总体非常多,下面几项是需要编辑修改的。
[PHP] extension_dir = "ext" cgi.force_redirect = 0 cgi.fix_pathinfo=1 fastcgi.impersonate = 1 fastcgi.logging = 0 [Date] date.timezone = Asia/Shanghai [opcache] opcache.huge_code_pages=1
一些额外的配置,我们也可以配置下(如果有必要的话)
1、配置PHP的Session功能:
在使用session功能时,我们必须配置session文件在服务器上的保存目录,否则无法使用session,我们需要在Windows 7上新建一个可读写的目录文件夹,此目录最好独立于WEB主程序目录之外,此处我在D盘根目录上建立了phpsessiontmp目录,然后在 php.ini配置文件中找到
;session.save_path = “/tmp”
修改为
session.save_path = “D:/phpsessiontmp”
2、配置PHP的文件上传功能:
同session一样,在使用PHP文件上传功能时,我们必须要指定一个临时文件夹以完成文件上传功能,否则文件上传功能会失败,我们仍然需要 在Windows 7上建立一个可读写的目录文件夹,此处我在D盘根目录上建立了phpfileuploadtmp目录,然后在php.ini配置文件中找到
;upload_tmp_dir =
修改为
upload_tmp_dir = “D:/phpfileuploadtmp”
至此在Windows 7上php的环境配置就算完成了,你只需要在c:\Apache24\htdocs\目录下新建一个PHP文件index.php,写入
<?php phpinfo(); phpinfo(INFO_MODULES); ?>
然后在游览器中输入http://localhost/,就可以看到PHP的具体配置页面了,代表在Window 7上PHP环境配置工作就算完成了。
接下来我们可以安装诸如wordpress或者phpbb等相应的应用了,这里就不在赘述了。