Apache+PHP+MySQL+WordPress网站搭建(Windows Server 2019 x64)

  • 2018-04-22
  • 0
  • 0

下载地址

PHP:http://windows.php.net/download#Releases
选择x64 Thread Safe,Zip格式

Apache:https://www.apachelounge.com/download/
https://aka.ms/vs/15/release/VC_redist.x64.exe (VC库,下载完后直接双击安装)

MySQL: https://dev.mysql.com/downloads/mysql/

WordPress: https://cn.wordpress.org/txt-download/

存储结构

C:\NJ
\Apache
\MySQL
\PHP
\Web

 

PHP

1. 打开PHP目录下的”php.ini-production”文件,另存为” php.ini”。
2. 修改插件目录(搜索关键词: extension_dir)
extension_dir = “C:\NJ\PHP\ext”

3. 加载下列模块:(去掉行首的;符号)
extension=curl
extension=mysqli
extension=pdo_mysql

4. 将PHP文件夹下的libssh2.dll和PHP\ext文件夹下的php_curl.dll复制到C:\Windows\System32

 

Apache

P: 每个需要编写的配置文件,在操作前,都先将该配置文件内的所有”c:/Apache24″替换为”C:/NJ/Apache”

1. 打开”C:\NJ\Apache\conf\httpd.conf”,修改参数”ServerName”、”ServerAdmin”。(若没有注册域名,ServerName处可填写IP,若填写主机的局域网IP则只有局域网用户可访问。)

2. 修改参数”DocumentRoot”(网站的根目录)
DocumentRoot “C:/NJ/Web”
<Directory “C:/NJ/Web”>

3.找到LoadModule区域,添加如下信息:(注意查看PHP目录下的dll文件版本)
LoadModule php7_module C:\NJ\PHP\php7apache2_4.dll
PHPIniDir “C:\NJ\PHP”
<FilesMatch “\.(php|phtml|html|htm)$”>
SetHandler application/x-httpd-php
</FilesMatch>

4. 修改默认检索index.html为index.php。(搜索关键词:DirectoryIndex)

5. 管理员身份打开CMD,cd至bin目录:cd C:\NJ\Apache\bin
键入命令检测配置文件:httpd.exe -t
如果报错,请百度错误信息。

键入命令安装服务:httpd.exe -k install -n Apache

6. 打开控制面板→系统和安全→Windows防火墙→允许应用通过Windows防火墙,点击允许其他应用,添加bin目录下的httpd.exe






7. 打开” C:\NJ\Apache\bin\ ApacheMonitor.exe”程序,运行服务。

8. 在”C:\NJ\Web”目录下新建文件”index.php”并写入如下内容
<?php echo phpinfo(); ?>

9. 打开浏览器,输入域名,查看是否正常显示PHP版本信息。(如果没有域名,则输入之前填写的局域网IP或127.0.0.1或http://localhost/)(如果localhost或局域网IP能访问,域名无法访问,请检查域名是否能成功解析到你主机的公网 IP)

 

Certbot证书申请

官网: https://certbot.eff.org/

官方不支持Windows系统,网上可能有第三方工具,可以尝试,但不建议(出于安全考虑)。
所以下面我选择在Debian上进行证书申请,申请完后,将证书文件提取出来,拷贝至Windows Server服务器。(其他Linux系统流程类似,具体指令可以在Certbot官网首页选择对应系统,查看教程参考)
采用这种方法是非常非常非常蛋疼的,因为证书只有三个月,到期后,只有Linux系统下才能自动续期,就是说又需要弄台Linux去重新弄一遍证书。
所以此小结内容仅供参考学习(娱乐),有需求的可以去搜索其他证书资源。
Debian 9.0 64位
1. 进入Debian,更新系统及软件(可以跳过)
apt-get update && apt-get upgrade

一路按”Y”

遇到列表选项,就选第一个”install the package maintainer’s version”

2. 按照Certbot官网的说明输入指令
sudo apt-get install python-certbot-apache -t stretch-backports

如果报错上述错误,则输入下列指令
sudo apt-get install python-certbot-apache

3. 在浏览器输入你的服务器地址,查看Apache是否成功启动。

从页面中,可以获得网页根目录是”/var/www/html”。等会验证时需要填写。

4. 按照Certbot官网的说明输入指令
sudo certbot –authenticator webroot –installer apache

填写证书相关信息

选择许可方式

5. 输入下列指令(文件地址及文件名来自上面截图中)
cat /etc/apache2/sites-available/000-default-le-ssl.conf

6. 将证书复制到网站根目录,方便下载
cp /etc/letsencrypt/live/mambas.cn/{fullchain.pem,privkey.pem} /var/www/html/

7. 用浏览器或下载工具下载证书文件。
下载地址格式为:”http://服务器域名或IP地址/fullchain.pem”

这两个.pem文件就是证书文件,可以直接拖到Apache那使用。如果非常非常想要.crt文件,那就继续看吧。

1. 打开腾讯云控制台(没错,你需要一个腾讯云账号,并且完成实名认证!!!)

2. 点击”上传证书”,复制”fullchain.pen”内的所有内容到”证书”栏,复制”privkey.pem”内的所有内容到”私钥”栏,点击”上传”

3. 点击”下载”

4. 下载下来的Zip压缩包内包含三个文件夹,分别包含Apache、IIS、Nginx所对应的证书格式

SSL

1. 将得到的证书文件复制到” C:\NJ\Apache\conf”

2. 修改配置文件” C:\NJ\Apache\conf\httpd.conf”
找到LoadModule区域,加载下列模块:去掉行首的#符号)
LoadModule http2_module modules/mod_http2.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so



加载下列配置:(去掉Include行首的#符号)
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

保存

3. 修改配置文件” C:\NJ\Apache\conf\extra\httpd-ssl.conf”
记得替换字符串。

修改网站相关参数
DocumentRoot “C:/NJ/Web” #网站根目录,修改成Web文件夹
ServerName mambas.cn #域名
ServerAdmin Ariza@mambas.cn #联系邮箱
ErrorLog “C:/NJ/Apache/logs/error.log” #日志
TransferLog “C:/NJ/Apache/logs/access.log” #日志

修改证书参数(看你用的证书文件是.pem格式的还是.crt格式的)
SSLCertificateFile “C:/NJ/Apache/conf/ fullchain.pem”
SSLCertificateKeyFile “C:/NJ/Apache/conf/ privkey.pem”

或者
SSLCertificateFile “C:/NJ/Apache/conf/2_guet.cf.crt”
SSLCertificateKeyFile “C:/NJ/Apache/conf/3_guet.cf.key”

保存

重启Apache服务,打开网页检测。

如果需要自动将http跳转到https,则打开文件” C:/NJ/Apache/conf/httpd.conf”,在ServerName下方添加下列代码
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}$1 [L,R]

保存,重启Apache服务。

MySQL

1. 将Zip包解压到MySQL文件夹。
2. 复制bin文件夹的路径,添加至环境变量。

新内核的Windows系统的环境变量设置可能是下面这个样子

3. 在MySQL文件夹下创建my.ini文件,写入如下内容
[mysqld]
basedir = C:\NJ\MySQL
datadir = C:\NJ\MySQL\data
port = 3306
character-set-server = utf8
default-storage-engine = INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
port = 3306
default-character-set = utf8
[mysql]
default-character-set = utf8

4. 管理员运行CMD,cd到MySQL的bin目录下,cd C:\NJ\MySQL\bin
依次键入下列命令:
mysqld –initialize-insecure –user=mysql
mysqld –install
net start mysql

注意:不管是否配置环境变量,一定要cd到bin目录下敲击指令,防止出错(mysqld –install成功安装但无法启动);
附CMD相关指令:
杀死mysqld进程:taskkill /f /t /im mysqld.exe
删除MySQL服务:sc delete MySQL

5. 修改root账户密码(New_Password用你自己的密码代替)
MySQL -u root -p

SET PASSWORD FOR ‘root’@’localhost’ = ‘New_Password’;

6. 创建用于WordPress的数据库(wordpress_database可以自定义名称)
CREATE SCHEMA `wordpress_database` DEFAULT CHARACTER SET utf8;

7. 创建用于WordPress的用户(wpuser、wppassword分别为用户名和密码,均可自定义)
CREATE USER ‘wpuser’@’localhost’ IDENTIFIED BY ‘wppassword’;
GRANT ALL ON wordpress_database.* TO ‘wpuser’@’localhost’;

/*************************************************************************************/

注意:如果你使用的是MySQL8.0+,并且在安装WordPress时,填写数据库信息后,提示数据库连接失败等内容,请执行以下操作。(这是由于新版MySQL采用新的认证插件caching_sha2_password,并且是默认的身份认证插件,而截至此教程撰写时,php的数据库连接模块并未支持此认证插件)

C:\NJ\MySQL\bin>mysql -u wpuser -p
Enter password: **********
mysql> ALTER USER ‘wpuser’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘wppassword’;

WordPress

1. 将压缩包里wordpress文件夹下的内容复制到Web文件夹下(不要压缩包里的wordpress那一层文件夹)

2. 在浏览器中输入域名,或主机的局域网IP或127.0.0.1或http://localhost/

3. 填写数据库信息

4. 数据库信息无误后,会出现如下界面。点击现在安装

5. 填写网站标题,创建用户名、密码。

6. 大功告成

评论

还没有任何评论,你来说两句吧

发表评论