参考文章1:(原文有坑,我会讲到)
https://yq.aliyun.com/article...
参考文章2:https://www.cnblogs.com/cyrfr...
阿里云服务器版本:Windows Server 2016 数据中心版 64位中文版
下载软件:PHP、Apache、Mysql
1、下载PHP
下载地址:(这里下载的是5.6版本,7.0高级版本需要下载VC14)
这里需要注意,要根据你的电脑系统版本选择,还有VC11 x64 Non Thread Safe
和VC11 x64 Thread Safe
也有区别,如果是IIS系列,就选择带“Non Thread Safe”的版本,如果是Apache httpd系列,就选择带“Thread Safe”的版本(可参考https://blog.csdn.net/lrcoop/...),这里我选择不带no的64位版本,点击ZIP下载压缩包,下载后先放在桌面
2、下载Apache
下载地址:https://www.apachehaus.com/cg...
同样这里也需要注意选择版本,我选择X64也就是64位,点击那个小国旗,进入下载页面,再点击direct link
下载,先放在桌面
3、下载Mysql
4、在C盘新建一个空目录website
(意为网站),在该目录下新建php、Apache24、mysql三个文件夹
5、将下载的PHP、Apache、Mysql压缩包解压到各自对应的文件夹内
6、配置PHP
将 PHP 的根目录下的php.ini-development
或者php.ini-production
复制一份并改名为 php.ini,作为PHP的配置文件,用记事本打开
注意:
1、ini文件的注释是分号(英文分号),所以取消注释就删除分号,也就是修改的每条内容要删掉前面的分号才生效;
2、${phphome}是PHP的根目录,配置文件中写成绝对路径。
6.1修改拓展文件路径(注意删掉前面的分号),此处C:\website\php\ext
路径要按照自己安装路径填写
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
extension_dir = "C:\website\php\ext"
6.2添加需要加载的扩展文件,其实就是去掉前面的分号即可(根据需要添加)
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.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_mysql.dll
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
6.3设置默认的时区
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
6.4设置 ssl(安全证书) :
[openssl]
; The location of a Certificate Authority (CA) file on the local filesystem
; to use when verifying the identity of SSL/TLS peers. Most users should
; not specify a value for this directive as PHP will attempt to use the
; OS-managed cert stores in its absence. If specified, this value may still
; be overridden on a per-stream basis via the "cafile" SSL stream context
; option.
openssl.cafile= cacert.pem
7、配置Apache,让PHP 和 Apache 协同工作
在apache24文件内按照此路径C:\website\Apache24\conf
找到httpd.conf
文件,右键用记事本打开
7.1修改apache的安装路径,这里要根据自己安装的位置填写
Define SRVROOT "C:\website\Apache24"
ServerRoot "${SRVROOT}"
7.2修改项目存放路径,这里我们没有修改,就使用默认的,${SRVRROOT}
就是我们上一步设置的路径
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
7.3修改默认端口号(也可以不修改),我这里将80改为了8081
#Listen 12.34.56.78:80
Listen 8081
7.4修改ServerName
ServerName localhost:8081
上面这两步有个坑,就是我修改端口号之后,无法通过域名访问,搞了大半天,最后找到了原因,是因为8081没有在阿里云控制台的安全组入方向
中添加,添加以后就好了,需要注意的是,只有默认的80端口可以省略,修改为8081后,每次必须加上域名,例如www.xxx.com:8081
7.5修改默认索引文件,三个,就是当我们输入网址或localhost:8081
之后,会默认依次寻找index.html、index.php、index.htm,并打开
<IfModule dir_module>
DirectoryIndex index.html index.php index.htm
</IfModule>
7.6让Apache加载PHP模块,将以下代码添加在最后面,PHP版本如果是5添加第一段,7添加第二段
LoadModule php5_module
为php文件夹中php5apache2_4.dll
的具体路径,根据自己安装路径填写 PHPIniDir
为PHP安装目录,也是根据自己安装路径填写
#php5.6
LoadModule php5_module C:/website/php/php5apache2_4.dll
<IfModule php5_module>
PHPIniDir "C:/website/php/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
<IfModule php7_module>
PHPIniDir "C:/website/php/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
7.7将apache注册为win的服务或(安装Apache的主服务,有了它,Apache才可启动)
在apache的安装目录下的bin目录内打开CMD命令窗口C:\website\Apache24\bin
,并输入指令httpd -k install
回车
如果安装的PHP x64位版本,Apache也需要是x64位版本的。然后还要将php
目录下的libeay32.dll
、ssleay32.dll
、libssh2.dll
以及ext
目录下的php_curl.dll
等四个文件,都复制放到C:/Windows/System32
目录下。否则curl扩展无法使用。参考链:http://my.oschina.net/lsfop/b... 。未做验证,只是照做,正常显示。
7.8启动Apache服务器
方法1:
在apache的安装目录下的bin目录内打开CMD命令窗口,输入指令httpd -k start
,然后地址栏输入www.XXX.com:8081
(若未修改端口号可以不加:8081)或者localhost:8081
除了启动命令还有其他命令:
关闭Apache -k stop
重启Apache httpd -k restart
卸载Apache httpd -k uninstall
查看Apache版本 httpd -V
命令帮助 httpd -h
方法2:
找到apache目录内bin目录下的ApacheMonitor.exe
文件,双击即可启动
启动后,在电脑右下角可以看到apache的程序图标,点击打开,然后选中Apache2.4
,点击start
8、配置Mysql
参考文章:http://blog.51cto.com/lusieme...
MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装,zip格式是自己解压,解压缩之后其实MySQL就可以使用了,但是要进行配置。这里我以zipg格式为例,进行配置
8.1、系统环境变量配置
我的电脑->属性->高级->环境变量
8.2、修改配置文件
参考文章:https://www.cnblogs.com/wangj...
在mysql文件夹中找到my-default.ini
,如果没有自己建立一个my.ini
文件,在其中修改或添加配置:(具体路径根据自己的安装填写)
[mysqld]
basedir=C:\website\mysql
datadir=C:\website\mysql\data
8.3、安装mysql
以管理员身份运行cmd
(一定要用管理员身份运行,不然权限不够),
输入:cd C:\website\mysql\bin
进入mysql
的bin
文件夹(不管有没有配置过环境变量,也要进入bin
文件夹,否则之后启动服务仍然会报错误2)
输入mysqld -install
(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!
)
8.4、启动mysql服务
继续在cmd中输入net start mysql
,服务启动成功!
这一步如果启动失败,而且没有任何报错,请 查看mysql
目录下是否有data
文件夹,如果没有在bin
目录下打开CMD窗口,执行命令mysqld --initialize
,再次启动即可
8.5、登陆mysql
继续在CMD中输入指令mysql -u root -p
可以看到是让我输入密码,我百度了一下,说是默认没有密码,直接回车就行,可是我直接按了回车,就报错了,原来在安装时,它生成了一个随机密码,但是这个密码不好找,在data
目录下的一个.err
结尾的文件内,我用记事本打开该文件,A temporary password is generated for root@localhost:
后面的就是随机密码
我们先不管那个随机密码,我们要重置密码,但是我们没有密码进不去,没法重置,所以先要跳过密码验证
8.6跳过密码验证
方法1:打开刚才新建的my.ini
,在最后一行添加skip-grant-tables
,然后保存,这句命令意思就是跳过密码验证
保存并退出mysql,在CMD继续输入net stop mysql
回车,关闭mysql,或者打开任务管理器,选择服务,停止运行mysql方法2:(经测试,该方法在mysql
8.X
版本无法使用,请使用方法1)在bin目录下打开CMD窗口,执行命令mysqld --skip-grant-tables
回车,不要关闭该窗口,直至密码修改完毕
重启mysql:
不管方法1还是方法2都是重新在bin目录下打开一个CMD窗口,若是方法2,切记不要关闭那个CMD窗口,输入指令net start mysql
8.7、重置密码(注意当命令行前为mysql>
时,命令结束必须加英文分号!!!!)
登陆mysql,因为已经设置了跳过密码验证,所以输入密码时直接敲回车
(使用指令use mysql
进入数据库设置,使用指令update user set password=password("你的新密码") where user="root";
设置新密码,输入指令flush privileges
,刷新数据库,输入指令quit
退出,使用net stop mysql
关闭mysql)
注意:这里有坑了,我按照上面的修改密码指令执行后,发现没有反应,原文下面有一行文字,说明修改成功的,百度了好久,刚开始意为少了后面那个分号,后来加上也不行,最后终于找到了一片文章,原来是8版本问题,使用的不是这个指令,是新指令 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
因为已经重置了密码,如果是修改了my.ini
文件就可以把my.ini
文件最后加的那句话删掉了,然后启动数据库---》登陆---》输入新密码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。