在学习php之前, 要先安装php的运行环境, 常见的运行环境有wamp, lnmp.
如果你在windows环境下学习php, 那么建议安装wamp或者xampp. 因为初学者确实没有必要浪费太多的时间在服务器软件的安装上. 当然如果你想自己配置PHP的运行环境. 这篇文章就是教你怎么手动配置运行环境的.
其实在windows下安装 apache + php + mysql 十分简单, 根本不用到处找教程.
(强烈建议在官网下载, 千万不要在第三方网站下载, 因为你没有办法保障安全)
下载地址: http://httpd.apache.org/
下载的时候往往没有那么地顺利, 因为官网并没有给出windows平台下的编译版, 但是官网给出了几个网站, 这些网站有已经编译好的包可供下载
下载好包之后, 解压到你喜欢的目录, 如: E:/server/
打开 INSTALL.txt, 这个文件就是教你怎么安装的, 有可能它并没有给出windows 下的安装方法. apache 的早期版本有给出详细的windows平台下的安装方法.
按住shift键 + 右击 E:/server/apache24/bin 空白处
在此处打开命令窗口,
以服务方式安装
成功之后, 一定要配置E:/server/apache24/conf/httpd.conf
ServerRoot "你的apache的安装目录" #E:/Server/Apache24
DocumentRoot "你的网站根目录" #E:/www
<Directory "你的网站根目录"> #E:/www
然后在浏览器中访问 http://localhost/
在笔者写这篇教程的时候, 不太建议安装php7.0, 因为很多扩展并没有支持php7.0, 我更建议安装5.6.22
下载地址:
http://windows.php.net/download#php-5.6
因为我们更喜欢用apache+php的组合, 所以下载的是线程安全版(Thread Safe)
如果你使用的是IIS+php, 那么下载非线程安全版 (Non Thread Safe)
下载后, 解压到你喜欢的目录, 如 E:/server/
打开install.txt, 里面有非常详细的安装方式, 包括windows平台下的和linux平台下的, 和不同的web服务器软件协同工作,英文很好的同学, 直接按照里面的描述一步一步做就行了.
强烈建议阅读这篇install.txt
不仅仅介绍了安装的方法, 还介绍了扩展的使用和编译问题及php的配置问题
Installing as an Apache module
# 以apache模块方式安装
You need to insert these two lines to your Apache httpd.conf
# 你需要插入以下两行代码到httpd.conf文件中
configuration file to set up the PHP module for Apache 2.0:
Example 2-6. PHP and Apache 2.0 as Module
# For PHP 5 do something like this:
# LoadModule php5_module "c:/php/php5apache2.dll"
LoadModule php5_module "F:\server\php-5.6.22\php5apache2_4.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/php"
以apache模块方式安装, 本教程只介绍这一种方式
把以下两行代码拷贝到httpd.conf中, 不能直接用, 要改一下路径
LoadModule php5_module "F:\server\php-5.6.22\php5apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "F:\server\php-5.6.22"
把 F:\server\php-5.6.22 改成你的php 安装路径
这样就使apache与php协同工作了
在网站根目录新建一个index.php文件, 并在index.php 文件中写如下代码:
phpinfo();
运行 http://localhost/index.php
mysql的安装相对比较独立, 不用配置 。建议下载MariaDB, mysql 其中一个分支, 各大linux发行版也逐渐使用MariaDB替代mysql
下载地址:
https://mariadb.org/download/
安装十分简单, 安装期间会要求输入root密码
管理mysql
你可以使用phpmyadmin, b/s 架构, 会受到php内存限制和网页运行时间限制 .
但是我更建议使用navicat for mysql, 速度更快, 且不依赖php, 所以还原或导出大数据库文件时, 不会遇到内存限制和运行时间限制
熟悉命令行的同学, 也可以使用命令行管理
其实和Windows下的安装差不多, 多了编译前配置和编译安装, 以及要解决的包依赖比较麻烦. 如果想在linux下安装运行环境, 其实不建议一个一个安装, 更建议安装xampp, 足够学习使用. 下面并没有非常详细的安装步骤, 但可以作为安装思路
注意: 这些包安装的时候最好安装在一个固定的目录下, 因为编译安装apache时,需要指定这些包所在的路径
下载apache
wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.20.tar.gz
解压
tar xvf httpd-2.4.20.tar.gz
编译安装
cd httpd-2.4.20
./configure
make
make install
可以使用各大linux发行版提供的包依赖工具, yum、apt-get 等,
注意: 这些包安装的时候最好安装在一个固定的目录下, 因为编译安装php时,需要指定这些包所在的路径
建议在安装mysql后再安装php, 因为编译安装php时, 需要用到mysql工具
安装步骤类似于apache, 强烈建议按照install.txt 步骤来进行安装
1. 先安装php的依赖包, 这些依赖包最好安装在同一目录下.
2. 下载源码
3. 编译安装
httpd.conf 在要开启的扩展面前删除 #
php.ini 中在要开启的扩展面前删除 ;
其它非自带扩展下载:
在 http://pecl.php.net/ 搜索要下载的插件, 大多数插件都会有windows版本的dll下载
一般web服务器会运营很多个网站, 虚拟目录设置有两种方式
1.一种是基于端口的虚拟目录
2.一种是基于套接字的虚拟目录 (ServerName)
换句话说
- 如果多个网站使用不同的域名, 同一个端口, 那么要设置ServerName.
- 如果多个网站使用同一个域名, 不同的端口, 那么ServerName 不用设置.
httpd.conf
Listen 这里写你想用的端口 #例如: Listen 8080 如果用的是基于套接字的虚拟目录方式, 可以不用设置
Include conf/extra/httpd-vhosts.conf //开启虚拟目录支持, 去掉前面的#
extra/httpd-vhosts.conf
#
# DocumentRoot "项目路径"
# ServerName "项目域名"
#
# AllowOverride All
#
#
9080>
DocumentRoot "F:\www\blog\public"
ServerName www.test.me
"F:\www\blog\public">
AllowOverride All
别忘了把下面这条加到hosts文件中
127.0.0.1 www.test.me
最后重启apache