天天看点

window10下搭建php的运行环境

window10下搭建php的运行环境

之前开发一直都是用的php集成环境(eg:phpstudy,xampp等),没有尝试过使用php+mysql+apache在本地独立搭建PHP运行环境,所以今天突然想试着搭建一下,看看路上会遇到什么麻烦。

转载: https://blog.csdn.net/YOYOYOHUI/article/details/81433894

之前开发一直都是用的php集成环境(phpstudy,xampp等),没有尝试过使用php+mysql+apache在本地独立搭建PHP运行环境,所以今天突然想试着搭建一下。首先我们需要的搭建工具有:

  • windows操作系统(我的电脑是win10)
  • apache
  • MySQL
  • php

1.Apache的安装:

apache的下载地址http://www.apachelounge.com/download/,根据你的电脑配置下载

window10下搭建php的运行环境

根据你的电脑配置来下载是32位的还是64位的。这里我在D盘创建了一个wamp的文件夹,将下载好的apache解压在该目录下。接下来以管理员的身份运行cmd,然后一步步进入到d:\wamp\Apache\bin目录,在该目录下执行httpd -k install 命令,

window10下搭建php的运行环境

我第一次执行httpd -k install 安装命令是遇到了上图的问题,那是应为在httpd.conf配置文件中的默认路径是错误的,你手动改写成你实际路径即可。

过程中我也遇到了apache不能安装的情况,后来查了一下是之前安装的apache已经被设置为系统服务,删除即可。

删除操作如下(注意也是以管理员身份操作):

window10下搭建php的运行环境

操作:在开始启动栏输入services.msc,打开系统服务列表:如图

window10下搭建php的运行环境

当然期间我也遇到其他的问题:

右键上图中的Apache2.4-》属性

window10下搭建php的运行环境

发现可执行文件的路径是错误的,还是之前集成环境的路径(当然这里已经是我修改过后的)。

这里是可修改的,方式如下:

开始启动搜索栏中输入"regedit"打开注册表 在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 下找到所需的服务Apache2.4,将其 "ImagePath"键值更改为实际路径即可。当然这里的介绍只是针对你的apache启动不了的情况,如果你执行了

sc delete apache2.4           

这条命令,你是不用执行以上操作的。当你执行完httpd -k install,出现以下内容时,说明你本地的apache已经安装成功了

window10下搭建php的运行环境

红框中的错误根据我的判断是可以忽略的,

当然你也可以解决出现这种错误:

localhost.localdomain. Set the \'ServerName\' directive globally to suppress this message apache 启动出现这种错误的解决方法: 将 apache 的配置文件httpd.conf中的 ServerName 改成可用域名或如下配置 ServerName localhost:80

你在浏览器中输入http://localhost,如果出现以下页面,说明你的apache已经安装成功了。

window10下搭建php的运行环境

安装参考链接参考链接

2.php的安装

下载地址:https://windows.php.net/downloads/releases/

window10下搭建php的运行环境

然后将下载的文件解压到wamp目录下的php文件夹(不要下载非线程安全的版本,里面没有phpX(5,7)apache2_4.dll的拓展文件),配置apache的时候要用到。

3.下载MySQL

接下来就是下载MySQL链接地址https://dev.mysql.com/downloads/mysql/,

window10下搭建php的运行环境

我是下载的MySQL5.7版本的,根据你的操作系统下载32bit或者64bit

window10下搭建php的运行环境

将下载的文件解压到wamp目录下的mysql文件夹。

4.修改配置文件

打开D:/wamp/apache/conf文件夹下的httpd.conf文件

找到#LoadModule xml2enc_module modules/mod_xml2enc.so这一行,在这一行下面添加一下内容

PHPIniDir "C:/wamp/php5.6/"
LoadModule php5_module "C:/wamp/php5.6/php5apache2_4.dll"    (注意点: 如果是安装的php7以上版本,则这里需要修改php7_module)           
window10下搭建php的运行环境

然后再找到 AddType application/x-gzip .gz .tg 这一行再下面添加

AddType application/x-httpd-php .php           
window10下搭建php的运行环境

apache的配置算是完成了。

然后再打开D:/wamp/php 文件夹下的php.ini-developement文件的文件名改为php.ini,然后对文件进行编辑,

window10下搭建php的运行环境

; extension_dir = "./"

; On windows:

extension_dir = "d:/wamp/php5.6/ext"

date.timezone = Asia/Shanghai

取消此行的注释,并且填写ext文件夹的实际路径.

然后就是开启一些php的扩展文件

window10下搭建php的运行环境

接下来就是配置MySQL了,打开进入到D:/wamp/mysql目录下新建my.ini配置文件,贴入一下内容

[mysql]
 
# 设置mysql客户端默认字符集
 
default-character-set=utf8 
 
[mysqld]
 
#设置3306端口
 
port = 3306 
 
# 设置mysql的安装目录
 
basedir=D:\wamp\mysql
 
# 设置mysql数据库的数据的存放目录
 
datadir=D:\wamp\mysql\data
 
# 允许最大连接数
 
max_connections=200
 
# 服务端使用的字符集默认为8比特编码的latin1字符集
 
character-set-server=utf8
 
# 创建新表时将使用的默认存储引擎
 
default-storage-engine=INNODB
      

  

以管理员的身份运行cmd,进入到D:/wamp/mysql/bin目录下安装MySQL服务,输入mysqld install(注意:是mysqld不是mysql)

命令行显示该行,表示安装成功

window10下搭建php的运行环境

接下来输入mysqld --initialize创建data文件夹,否则后面无法启动MySQL服务;

然后输入net start mysql就可以启动MySQL服务了

window10下搭建php的运行环境

输入mysql -u root -p,然后输入密码即可连接MySQL服务

可能会出现以下错误

window10下搭建php的运行环境

这里现在下载的MySQL版本默认都不支持无密码验证,需要我们手动设置修改,打开my.ini文件,在文件末尾加上一句:

skip-grant-tables
      

  

window10下搭建php的运行环境

然后重启MySQL(net stop mysql/net start mysql),此时可以不用密码进行连接,但许多功能受到了限制。先连接MySQL,然后选择user数据库修改root用户的密码。

update user set authentication_string=password("你设置的密码") where user = "root";
      

  

window10下搭建php的运行环境

断开MySQL连接,将设置文件my.ini文件里刚刚加入的skip-grant-tables删除,重启MySQL服务,使用你设置的密码登陆。

涉及点: 

  1. 创建一个MySQL用户

create user exuser@\'%\' identified by \'exPass@352\';
      

  

mysql> show create user xing@\'%\';
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER for xing@%                                                                                                                                            |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER \'xing\'@\'%\' IDENTIFIED WITH \'mysql_native_password\' AS \'*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9\' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+
      

  

create user tt@\'%\' identified by \'123456\' password expire interval 30 day; //创建一个有过期时间的账号
      

 

select user,host,password_expired,password_last_changed,password_lifetime from user;  //确定最后一次密码修改时间

show global variables like \'default_password_lifetime\';  //查看密码过期时间

show create user tstuser@\'localhost\'; //确定用户是不是用的mysql全局的密码过期策略


最终确定是否密码过期
      

  

修改密码以能够在客户端登陆:set password for root@localhost = password(\'123\');
修改root密码永不过期:ALTER USER \'root\'@\'localhost\' PASSWORD EXPIRE NEVER;
      

   2. PHP文件解析问题

    刚开始安装成功之后,访问的时候Apache并不能解析PHP文件

    

#LoadModule vhost_alias_module modules/mod_vhost_alias.so   //去除注释

LoadModule php5_module "D:/Develop/PHP/php5apache2_2.dll" //解析PHP文件

PHPIniDir "D:/Develop/PHP" // php根目录

AddType application/x-httpd-php .php .html .htm  // 支持的文件类型

DirectoryIndex index.php index.html // 设置目录默认文件
      

  

注意点:

  1. 如果配置出现问题(MySQL,PHP)则修改之后进行重新启动Apache

httpd -k restart
httpd --help 查看常用命令
      

  2. 数据库无法远程连接

grant all privileges on *.* to \'root\'@\'%\' identified by \'123456\'; 
重新加载权限
flush privileges;
      

  

问题总结:

  1. 

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.      

  这种情况是因为密码有一个过期时间,可以通过命令查看  default_password_lifetime 

show variables like \'default_password_lifetime\';
      

  解决:

alter user user() identified by "123456";
      

  2. 有时候启动Apache的时候会报错,可能是io错误,或者是日志等错误,最终都是因为不是超级管理员导致的错误,所以运行Apache的时候要使用超级管理员的权限运行可以解决许多问题