Apache配置

需要安装:VC2015

httpd-2.4.16-win32-VC14.zip VC14就是2015的环境。

又比如:php-5.6.12-Win32-VC11-x86 VC11就是2012的环境。

如果没有安装对应的环境,在配置php + apache时,提示内容会很奇怪。

可能会提示"提示NET HELPMSG 3547"在

语句填写正确的情况下,VC环境也是造成其原因之一,切记。

将Apache解压到C:\www\Apache24\,进入C:\www\Apache24\bin

httpd.exe -k install -n "Apache24"
rem httpd.exe -k uninstall -n "Apache24"

遇到错误:

查看apache错误日志:目录下的apache/logs/error.log

查看window系统日志:我的电脑——》右键管理——》系统工具——》事件查看器——》应用程序日志

在命令行中使用netstat -ano就可以很清楚的看到本地80口占用程序的PID    记下PID
然后打开任务管理器   在   进程    里查找到PID所对应的进程

修改C:\www\Apache24\httpd.conf里面的目录路径,将C: \Apache24更改为C:\www\Apache24

PHP配置

将php-5.6.12-Win32-VC11-x86.zip解压到目录,然后在httpd.conf中进行配置:

# php5 support
LoadModule php5_module "C: /php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .html .htm
# configure thepath to php.ini
PHPIniDir " C:/php"

将上述行为写成一个脚本可以方便下次配置,并且省去总是改目录的问题。

MYSQL配置

[mysqld]
# These are commonly set, remove the # and set as required.
#mysql的根目录
basedir = "E:/BaiduBack/BaiduBack/PHPENV/mysql"
#mysql的根目录
datadir = "E:/data"
# 默认端口
port = 3306
# server_id = .....
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 服务端的编码方式
character-set-server = utf8
[client]
#客户端编码方式,最好和服务端保存一致
loose-default-character-set = utf8

注意:MySQL的管理员用户名为root,密码默认为空。

MySQL修改root密码的多种方法

方法1: 用SET PASSWORD命令

mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

mysqladmin -u root password "newpass"
如果root已经设置过密码,采用如下方法
mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;

如何在本地配置两个站点:

让Apache在启动时能加载虚拟主机模块。

打开Apache安装目录下conf/httpd.conf文件,找到下面两行文字,把最前面的 # 号去掉,然后保存。

#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#Include conf/extra/httpd-vhosts.conf

接着找到同一文件中的DocumentRoot和Directory,改为站点目录的上一级目录

例如站点放在 D:/Appserv/www/1 和 D:/Appserv/www/2,则改为以下形式

DocumentRoot"D:/Appserv/www"
<Directory"D:/Appserv/www">

配置完成后即可打开Apache安装目录下/conf/extra/httpd-vhosts.conf文件,在最后添加如下:

DocumentRoot是文件放置路径,ServerName是网站域名:

<VirtualHost*:80>
DocumentRoot"D:/Appserv/www/1"
ServerName www.xxx.com
</VirtualHost>
<VirtualHost*:80>
DocumentRoot"D:/Appserv/www/2"
ServerName www.xxx2.com
</VirtualHost>

PHP_环境配置_python脚本

import os

class Moments:
def __init__(self):
print("Hello Moments");
pass
def configApache24(self, pathname="Apache24"):
if os.path.exists(pathname):
print("Find path %s" % pathname)
else:
return false; f5 = open(os.path.abspath(".").replace("\\","/") + "/php/php.ini-production", "r").readlines()
f6 = open(os.path.abspath(".").replace("\\","/") + "/php/php.ini", "w")
for line in f5:
if '''extension_dir = "ext"''' in line:
line = """extension_dir = "ext"\n"""
elif """;extension=php_mysql.dll""" in line:
line = """extension=php_mysql.dll\n"""
elif """;extension=php_mysqli.dll""" in line:
line = """extension=php_mysqli.dll\n"""
elif """;extension=php_pdo_mysql.dll""" in line:
line = """extension=php_pdo_mysql.dll\n"""
else:
line = line
f6.write(line)
f6.close() f3 = open(os.path.abspath(".").replace("\\","/") + "/mysql/my-default.ini", "r").readlines()
f4 = open(os.path.abspath(".").replace("\\","/") + "/mysql/my.ini", "w") for line in f3:
if "basedir" in line:
line = "basedir = %s\n" % (os.path.abspath(".").replace("\\","/") + "/mysql")
elif "datadir" in line:
line = "datadir = %s\n" % (os.path.abspath(".").replace("\\","/") + "/mysql/data")
elif "port" in line:
line = "port = 3306\n"
else:
line = line
f4.write(line)
f4.write("""# 服务端的编码方式
character-set-server = utf8
[client]
#客户端编码方式,最好和服务端保存一致
loose-default-character-set = utf8""")
f4.close()
s = os.path.abspath(".").replace("\\","/") + "/mysql/bin/mysqld.exe --remove mysql"
os.system(s)
s = os.path.abspath(".").replace("\\","/") + "/mysql/bin/mysqld.exe --install mysql"
os.system(s)
os.system("net stop mysql & net start mysql & pause") if os.path.exists(pathname + "/conf/httpd.conf.bak"):
os.remove(pathname + "/conf/httpd.conf")
#os.rename(pathname + "/conf/httpd.conf.bak", pathname + "/conf/httpd.conf")
else:
os.rename(pathname + "/conf/httpd.conf", pathname + "/conf/httpd.conf.bak") f = open(pathname + "/conf/httpd.conf.bak", "r").readlines()
f2 = open(pathname + "/conf/httpd_new.conf", "w") #改变appache路径
for line in f:
if 'c:/Apache24' in line:
#line = "#"+line+"\n"+"ServerRoot "+os.path.abspath(".").replace("\\","/")+"/"+pathname
line = line.replace("c:/Apache24", os.path.abspath(".").replace("\\","/")+"/"+pathname)
#多个站点设置上级目录(这里直接写成根目录)
line = line.replace("Apache24/htdocs", "")
elif '<IfModule unixd_module>' in line:
s_temp = """# php5 support LoadModule php5_module "%s/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .html .htm # configure thepath to php.ini PHPIniDir "%s/php" """ % (os.path.abspath(".").replace("\\","/"), os.path.abspath(".").replace("\\","/"))
if os.path.exists(os.path.abspath(".").replace("\\","/")+"/php/php5apache2_4.dll"):
line = s_temp + line;
else:
print("###ERROR:Can not find "+os.path.abspath(".").replace("\\","/")+"/php/php5apache2_4.dll")
#这里是多个站点设置
elif 'mod_vhost_alias.so' in line:
line = line.replace("#","")
#这里是多个站点设置
elif 'httpd-vhosts.conf' in line:
line = line.replace("#","")
else:
line = line
f2.write(line);
f2.close()
#将apache24添加到服务
s = os.path.abspath(".").replace("\\","/")+"/"+pathname+'/bin/httpd.exe -k uninstall -n "Apache24"'
os.system(s)
s = os.path.abspath(".").replace("\\","/")+"/"+pathname+'/bin/httpd.exe -k install -n "Apache24"'
os.system(s)
print (s) os.rename(pathname + "/conf/httpd_new.conf", pathname + "/conf/httpd.conf") f = open(pathname + "/conf/extra/httpd-vhosts.conf", "a")
f.write("""
<VirtualHost *:80>
DocumentRoot "%swww_1_com"
ServerName www.1.com
</VirtualHost> <VirtualHost *:80>
DocumentRoot "%swww_2_com"
ServerName www.2.com
</VirtualHost>
""" % (os.path.abspath(".").replace("\\","/"), os.path.abspath(".").replace("\\","/"))) os.mkdir("%swww_1_com" % os.path.abspath("."))
os.mkdir("%swww_2_com" % os.path.abspath("."))
os.system("net stop apache24 & net start apache24 & pause") if __name__ == "__main__":
mo = Moments();
mo.configApache24("Apache24");
print "请修改hosts 127.0.0.1 www.1.com"
print "请修改hosts 127.0.0.1 www.2.com"
os.system("net stop apache24 & net start apache24 & pause")

PHP_环境配置_python脚本_2017的更多相关文章

  1. 第6天【egrep、bash环境配置及脚本、vim编辑器】

    bash环境配置及脚本(02)_recv bash环境配置及脚本(02)_recv bash环境配置文件: 按生效范围划分,存在两类: 全局配置: /etc/profile /etc/bashrc 个 ...

  2. bash 环境配置及脚本

    bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...

  3. shell 脚本实战笔记(6)--集群环境配置检测

    1). 背景: 集群部署的时候, 需要一致的配置和环境设置. 对于虚拟机集群, 可以借助镜像拷贝, 复制和还原集群机器. 对与物理机集群而言, 则不一样, 如果机器一多, 多人去操作和配置, 对于成熟 ...

  4. [PY3]——环境配置(1)——pyenv | pip | ipython | jupyter(含安装pyenv环境shell脚本)

    1.关于pyenv (1)pyenv是一个开源的.shell脚本编写的工具:Simple Python version management (2)为什么使用pyenv:当多个项目同时在开发与维护时, ...

  5. 服务端测试环境hosts配置检查脚本

    [本文出自天外归云的博客园] 问题 由于A测试环境和B测试环境相互耦合,B测试环境切换导致我方测试环境需要更改后台服务器的响应配置.若多台服务器中有一台服务器没有更改配置,则在测试过程中将会出现问题. ...

  6. 基于VMware的eCos环境编译redboot(脚本配置redboot)

    基于VMware的ecos,redboot及hello world(1)安装请参照[[ecos学习2]wmware运行redboot[方法二]--图形实现配置 ] (2)修改内存布局文件:~/i386 ...

  7. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  8. seL4环境配置

      转载声明:希望大家能够从这里收获知识之外,也能够体会到博主撰写博客的辛苦.个人博客势单力薄,对于强转甚至转载博客访问量高于原文的例子不在少数. 希望能够得到大家关注的同时,也能够稍微体谅一下博主的 ...

  9. 解读ASP.NET 5 & MVC6系列(4):核心技术与环境配置

    asp.net 5是下一代的asp.net,该版本进行了全部重写以适用于跨平台,新新版本中,微软引入了如下工具与命令:DNVM.DNX.DNU. DNVM(.NET Version Manager): ...

随机推荐

  1. 干货分享:SQLSERVER使用裸设备

    干货分享:SQLSERVER使用裸设备 这篇文章也适合ORACLE DBA和MYSQL DBA 阅读 裸设备适用于Linux和Windows 在ORACLE和MYSQL里也是支持裸设备的!! 介绍 大 ...

  2. CRC、反码求和校验 原理分析

    3月份开始从客户端转后台,算是幸运的进入全栈工程师的修炼阶段.这段时间一边是老项目的客户端加服务器两边的维护和交接,一边是新项目加加加班赶工,期间最长经历了连续工作三天只睡了四五个小时的煎熬,人生也算 ...

  3. 【WCF】自定义错误处理(IErrorHandler接口的用法)

    当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...

  4. UE4新手引导之下载和安装虚幻4游戏引擎

    1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...

  5. ASP.NET加密和解密数据库连接字符串

    大家知道,在应用程序中进行数据库操作需要连接字符串,而如果没有连接字符串,我们就无法在应用程序中完成检索数据,创建数据等一系列的数据库操作.当有人想要获取你程序中的数据库信息,他首先看到的可能会是We ...

  6. 谈谈JS的观察者模式(自定义事件)

    呼呼...前不久参加了一个笔试,里面有一到JS编程题,当时看着题目就蒙圈...后来研究了一下,原来就是所谓的观察者模式.就记下来...^_^ 题目 [附加题] 请实现下面的自定义事件 Event 对象 ...

  7. “fixed+relative==absolute”——对BFC的再次思考

    好久没写博客了,刚好今天跨年夜没约到什么妹子,在家宅着不如写点东西好了. 需求 昨天晚上,给公司年会做一个移动端的投票页面,遇到一个UI优化的问题: · 正文内容少于一屏时,投票提交按钮固定显示在页面 ...

  8. Autofac - 生命周期

    实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), 一个新的对象 (per lifetime作用 ...

  9. Android中Fragment和ViewPager那点事儿(仿微信APP)

    在之前的博文<Android中使用ViewPager实现屏幕页面切换和引导页效果实现>和<Android中Fragment的两种创建方式>以及<Android中Fragm ...

  10. Atitit 管理原理与实践attilax总结

    Atitit 管理原理与实践attilax总结 1. 管理学分类1 2. 我要学的管理学科2 3. 管理学原理2 4. 管理心理学2 5. 现代管理理论与方法2 6. <领导科学与艺术4 7. ...