Windows Server安装Apache+PHP+MySql环境

        在阿里云上租了一台主机,其操作系统是Windows Server Standard 2008,希望在其上运行一个Laravel服务。一开始我安装了WAMPServer包,但是运行报错:

无法定位程序输入点TryAcquireSRWlockExclusive于动态链接库kernel32.dll 

这是由于MySql5.6以上的版本需要"TryAcquireSRWlockExclusive",而这个特性是在win7之后才引入的,所以Windows Server没有这个,但是使用低版本的WAMP包不支持PHP7.0,而这是Laravel5.5所需要的。于是集成开发包的缺点体现了出来,索性自己重头开始搭建所需要的环境吧。

1、安装VC14

        因为apache、PHP的编译都是通过VC完成的,apache2.4有vc14、vc11两种编译版本,而PHP7.0只有vc14,为了兼容与统一,我选择安装vc14,在微软官网下载vc14运行库,也就是vc++2015。选择中文,服务器对应的32位X86版本。

        将运行库在服务器上一路点击下一步完成安装。

        Windows Server安装Apache+PHP+MySql环境_第1张图片

2、安装apache

        在apache官网下载apche2.4 对应vc14版本,服务器对应的X86版本,点击下载压缩包httpd-2.4.33-o102n-x86-vc14.zip,解压到你的apache目录。

           解压后得到apche24文件夹,修改其中apache配置文件apche24\conf\httpd.conf文件:

(1) 修改apache根目录:Define ServerRoot"c:/Apache24" => Define ServerRoot "C:\Web\Apache24"
(2) 开放80端口:ServerNamewww.example.com:80将前面的#去掉
(3) 修改默认入口文件:
       
        DirectoryIndexindex.html   
    
    改为=>   
      
        DirectoryIndex  index.php index.htm index.html    
    
(4) 
 AllowOverride None
 Options None
 Require all granted

改为=>

 AllowOverride None
 Options None
 Require all granted

       注册apache服务,在apache\bin目录下运行命令行,输入:httpd.exe -k install -n apache,之后apache会显示安装成功的提示,最后一行为Errors reported here must be corrected before the service can be started:,意思是下面的错误必须修正才能启动apache,如果没有,则可以启动apache了

        点击Apache24\bin文件夹下的ApacheMonitor.exe来打开apache控制器,启动apache,在浏览器输入localhost可以看到如下界面:

Windows Server安装Apache+PHP+MySql环境_第2张图片

3、安装PHP7.0

        在PHP官网下载php7.0 vc14 线程安全版本VC14 x86 Thread Safe。简单而言Windows下apache选择PHP线程安全版本,解压文件到你的PHP文件夹夹。

        修改apache目录下的conf\httpd.conf文件,告诉apache加载PHP模块,在文件最后添加如下:

#php7  
LoadModule php7_module C:/Web/PHP/php7/php7apache2_4.dll  
   
    PHPIniDir "C:/Web/PHP/php7/"   
    AddType application/x-httpd-php .php  
    AddType application/x-httpd-php-source .phps  
  

        其中php7_module为PHP文件夹下的php7apache2_4.dll 路径,phpinidir为PHP的安装路径。

        配置PHP:在php目录下复制一份php.ini-development后重命名为php.ini,在其中修改如下:

修改扩展文件路径:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "C:\Web\PHP\php7\ext"

    打开所需要的PHP扩展

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
;
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_ftp.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll

laravel所需的扩展如下,因此需要打开:

  • PHP OpenSSL 扩展
  • PHP PDO 扩展
  • PHP Mbstring 扩展
  • PHP Tokenizer 扩展
  • PHP XML 扩展

    在apach的Apache24\htdocs路径下创建文件test.php,文件内容:

    在浏览器localhost:test.php可以看到页面如下表示安装成功:

Windows Server安装Apache+PHP+MySql环境_第3张图片

4、安装mysql

    网上找到MySQL5.6免安装的压缩包解压到C:\Web\MySql目录下,打开其目录下的my.ini文件,修改mysql与data路径:

# These are commonly set, remove the # and set as required.
basedir = C:\Web\MySql
datadir = C:\Web\MySql\data

    取消如下句子的注释:

log_bin

    注册服务:在mysql\bin目录下启动命令行输入mysqld -install

    启动服务:接着输入net start mysql

        我在启动时报错系统错误 1067,进程意外终止,于是我输入

            mysqladmin -u root -p shutdown

 

    再此启动net start mysql就没有这个错误提示了

    修改root密码:

mysql> update user set password=password('password') where user='root';
mysql> flush privileges;

5、运行laravel

    我将laravel5.5的文件包粘贴到apache的根目录htdocs下,访问public可以访问,但是访问其他路由时就会报错404 not found,除了开启之前laravel所需要的PHP模块之外还需要:

    在apache \conf开启rewrite模块:LoadModule rewrite_module modules/mod_rewrite.so,

    在conf文件中找到directory 把AllowOverride None 改成 AllowOverride All


    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

    复制php安装目录中的: libeay32.dll、ssleay32.dll至apache\bin目录

至此在Windows Server 2008上运行了Apache+PHP+Mysql的Laravel服务

你可能感兴趣的:(PHP学习)