PHP 安装
如何下载Apache,php,mysql
下载Apache
打开网址:http://httpd.apache.org/。
点击Download(http://httpd.apache.org/download.cgi#apache24)进入到详细页面。
可以看到这里有源码,二进制的版本,我们选择Windows版本。
点击后进入:http://httpd.apache.org/docs/current/platform/windows.html#down
可以看到官网已经做出说明,现在不再提供编译后的文件,只提供源码。好吧用第三方的。
我们可以从前三个网址下载相应版本,也可以使用WampServer和XAMPP集成包。
接下来就根据自己的系统选择相应的版本,x86是32位系统,x64是64位系统。
Apache是有环境依赖的,需要打上相应的VC运行库,如VC14等。
下载php
打开php官网的下载链接:http://php.net/downloads.php。
点击Windows downloads进入下载页面。
根据系统下载相应的版本,如64位则下载x64的版本。
如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程 安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。
下载mysql
从官网进入下载地址要多点几下。
打开网址http://dev.mysql.com/downloads/mysql
点击Download进行下载吧。
官网的速度还是比较慢的,这里就提供一个国内的镜像吧。
打开镜像网址:http://mirrors.sohu.com/mysql/
直接下载就可以了,如:http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.34-winx64.zip。
常用的国内镜像站
搜狐开源镜像站:http://mirrors.sohu.com/
网易开源镜像站:http://mirrors.163.com/
开源中国:http://mirrors.oschina.net/
首都在线科技股份有限公司:http://mirrors.yun-idc.com/
阿里云开源镜像:http://mirrors.aliyun.com/
如何配置Apache,php,mysql
配置Apache
php是用C语言进行编译的,如果没有安装VC相应的运行库,提示内容会很奇怪。如“提示NET HELPMSG 3547”。
在语句填写正确的情况下,VC环境也是造成其报错的原因之一,切记。
VC库对应的版本如下:
Visual C++ 2003 运行库(VC7)
Visual C++ 2005 运行库(VC8)
Visual C++ 2008 运行库(VC9)
Visual C++ 2010 运行库(VC10)
Visual C++ 2012 运行库(VC11)
Visual C++ 2013 运行库(VC12)
Visual C++ 2015 运行库(VC14)
对http.conf(D:phpEnvApache24confhttp.conf)配置文件进行修改-使用记事本打开就行
httpd.conf的具体设置如下:
(1)修改ServerRoot Apache的根路径:
(37行)
ServerRoot"c:/Apache24"改成=>ServerRoot "D:/phpEnv/Apache24"
(2)修改ServerName你的主机名称:
如果此行不修改则启动apache 提示Starting httpd: AH00558
(217行)
ServerName www.example.com:80将前面的#去掉,该属性在从命令行启动Apache时需要用到。
(3)修改DocumentRoot Apache访问的主文件夹目录,就是php、html代码文件的位置。
Apache默认的路径是在htdocs(D:phpEnvApache24htdocs)下面,里面会有个简单的入口文件index.html。这个路径可以自
己进行修改,我这里将其配置在我自己新建的文件夹www(D:phpEnvwww)下。
(247行)
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
改为=>
DocumentRoot "D:phpEnvwww"
<Directory "D:phpEnvwww">
(4)修改入口文件配置:DirectoryIndex一般情况下我们都是以index.php、index.html、index.htm作为web项目的入口。
Apache默认的入口只有index.html需要添加其他两个的支持,当然这个入口文件的设置可以根据自己的需要增减,如果要求比较严
格的话可以只写一个index.php,这样在项目里面的入口就只能是index.php
(274行)
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改为=>
<IfModule dir_module>
DirectoryIndex index.php index.htm index.html
</IfModule>
(5)设定serverscript的目录:
(358行)
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"
改为=>
ScriptAlias /cgi-bin/ "D:/phpEnv/Apache24/cgi-bin"
(6)设定虚拟目录路径,多站点为上级目录
(380行)
<Directory "c:/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
改为=>
<Directory "D:/phpEnv/Apache24/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
注册服务和启动服务
将Apache解压到C:wwwApache24,进入C:wwwApache24in
配置Apache_错误解决办法
查看apache错误日志:目录下的apache/logs/error.log
查看window系统日志:我的电脑右键管理系统工具事件查看器应用程序日志
在命令行中使用netstat -ano就可以很清楚的看到本地80口占用程序PID记下PID然后打开任务管理器,在进程里查找到PID所对应的进程
如上图,则修改C:wwwApache24httpd.conf里面的目录路径,将C: Apache24更改为C:wwwApache24。
到这里单个Apache配置就已经完成。
配置PHP
将php-5.6.12-Win32-VC11-x86.zip解压到目录,然后在Apache24confhttpd.conf中进行配置:
Php的一些常用配置修改:(D:phpEnvphpphp.ini)
时区的设置:date.timezone = Asia/Shanghai
错误报告等级:error_reporting = E_ALL这个在开发模式下可以全部打开。
配置MYSQL
修改配置文件:C:mysqlmy.ini
注意:MySQL的管理员用户名为root,密码默认为空。
修改配置文件:打开php的配置文件php.ini(D:phpEnvphpphp.ini)
(1)PHP对扩展的支持(721行)
#这里需要注意一下,如果只用ext做为扩展路径而不是全路径,容易导致扩展路径出错。向httpd.exe传相对路径就会定们出错。所以最好使用全路径。
; extension_dir = "ext",去掉前面的“;”,并改为extension_dir ="D:phpEnvphpext"打开php的扩展支持,ext文件夹下有很多php的扩展支持.dll文件,感兴趣的同学可以看一下。
(2)然后就是打开php的mysql扩展了
(875、876行)去掉前面的“;”
extension=php_mysql.dll
extension=php_mysqli.dll
当然也可以打开881行的php_pdo_mysql.dll启用php的pdo支持我一般都用这个。
MYSQL修改root密码
- 方法1: 用SET PASSWORD命令
- 方法2: 用mysqladmin
- 方法3: 用UPDATE直接编辑user表
mysqladmin -u root password "newpass"
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
方法4:在忘记root密码的时候,可以这样 以windows为例:
- 关闭正在运行的MySQL服务。
- 打开DOS窗口,转到mysqlin目录。
- 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
- 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysqlin目录。
- 输入mysql回车,如果成功,将出现MySQL提示符 >。
- 连接权限数据库: use mysql; 。
- 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
- 刷新权限(必须步骤):flush privileges; 。
- 退出 quit。
- 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
如何在本地配置两个站点
让Apache在启动时能加载虚拟主机模块。
打开Apache安装目录下conf/httpd.conf文件,找到下面两行文字,把最前面的 # 号去掉,然后保存。
接着找到同一文件中的DocumentRoot和Directory,改为站点目录的上一级目录
例如站点放在 D:/Appserv/www/1 和 D:/Appserv/www/2,则改为以下形式
配置完成后即可打开Apache安装目录下/conf/extra/httpd-vhosts.conf文件,在最后添加如下:
DocumentRoot是文件放置路径,ServerName是网站域名:
配置PHP+PhpStorm+xdebug
下载xdebug文件
http://xdebug.org/wizard.php
将phpinfo()的源代码复制到文本框中,xdebug会提示如何配置和下载哪个版本的xdebug。
全部下载地址:
http://www.xdebug.org/download.php
在xdebug官网会有许多安装提示。其中可能会出现的问题有:
phpize没有安装:继而又要安装brew,再安装autoconf可谓一波三折
解决相关组件不全的问题
问题描述
Mac系统升级到10.9(mavericks)时安装php扩展,执行 phpize 提示如下错误:
Cannot find autoconf. Please check your autoconf installation
and the $PHP_AUTOCONF environment variable.
解决办法
先安装Homebrew:
如果以下链接失效的话,可以到brew官网查看。http://brew.sh/
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后安装 autoconf:
brew install autoconf
配置php.ini,在末尾加上
在xdebug官网上的配置,只能够正确配置好xdebug但是不能与phpstorm进行配置。在php.ini末尾加上如下代码:
[xdebug]
zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000
xdebug.idekey = PHPSTROM
[xdebug]
zend_extension="php_xdebug-2.3.3-5.6-vc11.dll"
xdebug.remote_enable = On
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
zend_extension:如果使用相对路径,必须检查一下,php.ini中extension_dir是否为绝对路径。
Debug->Xdebug->Debug port:必须与php.ini文件中的xdebug.remote_port保持一致。
chrome的xdebug配置
在IDE key里将其配置成“phpStorm”
项目地址:https://github.com/mac-cain13/xdebug-helper-for-chrome
包直接下载地址:https://clients2.google.com/service/update2/crx?response=redirect&prodversion=38.0&x=id%3Deadndfjplgieldj bigjakmdgkmoaaaoc%26installsource%3Dondemand%26uc
进入网址:http://yurl.sinaapp.com/crx.php
输入包名:eadndfjplgieldjbigjakmdgkmoaaaoc
安装:
打开chrome,输入:chrome://extensions/
然后将extension_1_6_1.crx拖放到浏览器窗口。
phpStorm的相关配置
打开phpStorm,
进入File>Settings>PHP>Servers,这里要填写服务器端的相关信息,name填localhost,host填localhost,port填80,debugger选XDebug
进入File>Settings>PHP>Debug,看到XDebug选项卡,port填9000,其他默认
进入File>Settings>PHP>Debug>DBGp Proxy,IDE key 填 phpStorm,host 填localhost,port 填80
点OK退出设置。
xdebug中其他配置
在phpStorm里打开监听(电话按钮)。
对apache进行重启,如使用命令行:net stop apache24 & net start apache24;
查看xdebug是否正确配置:进入到php.exe目录:执行php.exe -m可以查看相关模块。
#重启apache
sudo apachectl restart
#修改php.ini权限
sudo chmod 0777 php.ini
#编辑php.ini文件
sudo vi php.ini(修改i,退出:q,保存退出:wq)
#对apache进行重启,如使用命令行:
net stop apache24 & net start apache24;
在phpinfo()中进行验证其是否安装成功,如果不成功先检查路径,后检查端口。
配置phpMyAdmin
进入官网下载压缩包:https://www.phpmyadmin.net/
将phpMyAdmin解压到虚拟目录(www.1.com)
访问phpMyAdmin:http://www.1.com/phpMyAdmin
要开启插件extension=php_mbstring.dll
用户名默认为root,密码为空。设置密码的方法:mysqladmin -u root password "newpass"
使用空密码进入phpMyAdmin:
phpMyAdmin的配置文件为根目录下的:config.inc.php(将config.sample.inc.php复制改名可得。复制libraries/config.default.php亦可。)
修改:$cfg['Servers'][$i]['AllowNoPassword'] = true;即可。
MAC平台补充
启动Apache
打开终端(terminal)
进入到root目录:sudo -i;sudo su。
运行”sudo apachectl start”,输入root密码,这样就启动了Apache。
默认虚拟目录:/Library/WebServer/Documents/下。
常用命令行:
网址:http://httpd.apache.org/docs/2.4/programs/apachectl.html
sudo apachectl start
sudo apachectl stop
sudo apachectl restart
运行php
在终端中运行“sudo vi /etc/apache2/httpd.conf”。
找到“#LoadModule php5_module libexec/apache2/libphp5.so”,把#号去掉,保存(在命令行输入:w)并退出vi(在命令行输入:q)。
运行“sudo cp /etc/php.ini.default /etc/php.ini”,这样就可以运行sudo vi /etc/php.ini来编辑php.ini配置各种功能了。比如:
;通过下面两项来调整PHP提交文件的最大值,如phpMyAdmin中导入数据的最大值
upload_max_filesize = 2M
post_max_size = 8M
;通过display_errors来控制是否显示PHP程序的报错信息,这在调试PHP程序时非常有用
display_errors = Off
;增加mysql的支持:
extension=php_mysql.dll
运行“sudo apachectl restart”,重启Apache,这样PHP就可以用了。
安装Mysql
从5.7开始安装的时候会默认生成密码,一定要截图记住密码。
系统偏好设置->MySQL->Start MySQL Server就可以开启服务。
使用xampp
个人感觉在Mac平台下,自己安装如果顺利倒也简单,但毕竟依赖太多,纵使你精通某一方面,但bug涉及的面太多。如果仅仅是配置个php+apache+mysql还是很简单的,系统本身就有php环境,如果要扩展一下那就......还是算了吧,用集成环境也是一个不错的选择。
先到官网下载集合包:https://www.apachefriends.org
https://www.apachefriends.org/xampp-files/5.6.28/xampp-osx-5.6.28-1-installer.dmg
到Mac本地后,双击安装吧!
其xampp的默认目录为:/Applications/xampp/
安装xdebug
感觉PHP都自带了一个版本的xdebug一般情况下不用自己去编译, 比如说xampp的文件在/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so。
好了,借花献佛,跳过了phpize等烦人的依赖。
在Mac下配置xampp+xdebug
下载XAMPP:https://www.apachefriends.org/xampp-files/5.6.28/xampp-osx-5.6.28-1-installer.dmg
安装XAMPP:
配置文件在/Applications/XAMPP/xamppfiles/etc/目录下面:
修改php.ini,httpd.conf,/extra/httpd-vhosts.conf
根据http://xdebug.org/wizard.php 做如下修改:
在php.ini增加xdebug支持:
在httpd.conf修改多站点支持,和虚拟目录:
在/extra/httpd-vhosts.conf中配置域名转向:
到此配置的就OK了,phpstorm的配置可以参照windows的配置。
相关问题
如何将apache添加为服务
httpd.exe -k install -n "Apache24"
rem httpd.exe -k uninstall -n "Apache24"
如何查看apache服务是否安装成功
#rem 在findstr的参数/I有不分大小写的作用
net start|findstr /I "apache"
#使用资源管理器查看
开始-->运行-->services.msc-->确定
如何解决apache服务无法正常安装的问题
#首先确定软件32位和64位是否和自己的系统匹配
#安装相应的Microsoft Visual C++ Redistributable
如何解决端口被占用的问题
#查看80端口是否被占用:
netstat -aon|findstr "80"
#打开apache目录下的conf/httpd.conf
修改"Listen 80"为"Listen 8088"
如何添加环境变量
#运行SystemPropertiesAdvanced.exe,系统属性高级
#环境变量Path,末尾添加,分号结束
如何改变服务器网站目录
#打开文件/conf/httpd.conf
#修改ServerRoot(服务器apache目录)
#修改DocumentRoot(网站目录)
相关环境
AppServ集成环境(Windows):http://www.appservnetwork.com
XAMPP集成环境(Windows,Linux,Mac):http://www.apachefriends.org
WAMP集成环境(64/32位Windows):http://http://www.wampserver.com/
PHP_环境配置_python脚本
# -*- coding: cp936 -*-
#Writeby:Moments(衿华客)
#Date:201701111954
import os
import zipfile
import shutil
class Moments:
def __init__(self):
print("Hello Moments")
pass
#path:要解压文件的路径,dir_name:解压到哪个文件夹,dir_zip:只解压压缩包里的某个文件夹,dir_rename:将解压后的文件夹重命名
def unZip(self, path="", dir_name="", dir_zip=[], dir_rename=[]):
if path == "":
print("【ERROR:要解压文件的路径为空】")
return False
if len(dir_rename) > 0 and os.path.exists(dir_rename[1]):
print("【WARN:将解压后的文件夹重命名,目标文件夹%s已经存在】" % dir_rename[1])
return False
#解压操作
file = zipfile.ZipFile(path, "r")
for name in file.namelist():
#只解压指定的文件夹
if len(dir_zip) > 0:
for i in dir_zip:
if i in name:
file.extract(name, os.getcwd()+"/"+dir_name)
else:
file.extract(name, os.getcwd()+"/"+dir_name)
#改名操作
if len(dir_rename) > 0:
file_list = os.listdir(os.getcwd())
for name in file_list:
if not os.path.isdir(name):
continue
if dir_rename[0] in name:
os.rename(name, dir_rename[1])
break #只改第一个,防止多个问题
#析构提示
print("【SUCCEED:已解压" + path + "到目录" + dir_name + "】")
#遍历目录,返回符合条件的路径
def listDir(self, path=".", *argc):
file_list = os.listdir(path) #遍历路径
flag_temp = True #哨兵
result = [] #返回值变量
for name in file_list:
for argv in argc:
if argv not in name:
flag_temp = False
break
if flag_temp:
result.append( os.path.abspath(name) )
else:
flag_temp = True
if len(result) > 0:
print("【SUCCEED:找到符合条件的文件:%s】" % result)
return result
else:
print("【ERROR:没有找到条例条件的文件/文件夹】")
return False
#配置Apache,php,mysql
def configPHP(self, APM_name=["Apache", "php", "mysql"]):
#配置php
config_name = os.path.abspath(".").replace("\", "/") + "/" + APM_name[1] + "/php.ini"
print("【PATH:配置%s】" % config_name)
if os.path.exists(config_name):
os.remove(config_name)
f1 = open(config_name.replace("php.ini", "php.ini-production"), "r").readlines()
f2 = open(config_name, "w")
for line1 in f1:
#这里要用绝对路径,不然会导致抓取到Apachein下的ext。
#包括xdebug在配置的时候也会出现目录问题。
if '''extension_dir = "ext"''' in line1:
line1 = '''extension_dir = "%s/ext"
''' % (os.path.abspath(".").replace("\", "/") + "/" + APM_name[1])
elif ''';extension=php_mysql.dll''' in line1:
line1 = '''extension=php_mysql.dll
'''
elif ''';extension=php_mysqli.dll''' in line1:
line1 = '''extension=php_mysqli.dll
'''
elif ''';extension=php_pdo_mysql.dll''' in line1:
line1 = '''extension=php_pdo_mysql.dll
'''
elif ''';extension=php_gd2.dll''' in line1:
line1 = '''extension=php_gd2.dll
'''
elif ''';extension=php_mbstring.dll''' in line1:
line1 = '''extension=php_mbstring.dll'''
else:
pass
f2.write(line1)
f2.close()
print("【SUCCEED:完成%s配置】" % APM_name[1])
def configMysql(self, APM_name=["Apache", "php", "mysql"]):
#配置mysql
config_name = os.path.abspath(".").replace("\", "/") + "/" + APM_name[2] + "/my.ini"
print("【PATH:配置%s】" % config_name)
if os.path.exists(config_name):
os.remove(config_name)
f1 = open(config_name.replace("my.ini", "my-default.ini"), "r").readlines()
f2 = open(config_name, "w")
for line1 in f1:
if "basedir" in line1:
line1 = "basedir = %s
" % (os.path.abspath(".").replace("\","/") + "/" + APM_name[2])
elif "datadir" in line1:
line1 = "datadir = %s
" % (os.path.abspath(".").replace("\","/") + "/" + APM_name[2] + "/data")
elif "port" in line1:
line1 = "port = 3306
"
else:
pass
f2.write(line1)
f2.write("""# 服务端的编码方式
character-set-server = utf8
[client]
#客户端编码方式,最好和服务端保存一致
loose-default-character-set = utf8""")
f2.close()
print("【SUCCEED:完成%s配置】" % APM_name[2])
def configApache(self, APM_name=["Apache", "php", "mysql"]):
#配置Apache
config_name = os.path.abspath(".").replace("\", "/") + "/" + APM_name[0] + "/conf/httpd.conf"
print("【PATH:配置%s】" % config_name)
if not os.path.exists(config_name.replace("httpd.conf", "httpd.conf.bak")):
shutil.copy(config_name, config_name.replace("httpd.conf", "httpd.conf.bak"))
if os.path.exists(config_name):
os.remove(config_name)
f1 = open(config_name.replace("httpd.conf", "httpd.conf.bak"), "r").readlines()
f2 = open(config_name, "w")
for line1 in f1:
#更改默认目录
if "c:/Apache24" in line1:
line1 = line1.replace("c:/Apache24", os.path.abspath(".").replace("\", "/")+"/"+APM_name[0])
#添加默认主页支持