1. 安装apache
其实mac自带的有apache,直接配置启动就好,但是我不小心把重要文件给删掉了,所以只能自己下载了apache的源码包来编译安装,安装之前先要安装几个依赖包
# cd /user/denglinjie/software
下载依赖的几个包以及apache
wget -c /apache/apr/apr-1.5.2.tar.gzwget -c /apache/apr/apr-util-1.5.4.tar.gzwget -c /apache/httpd/httpd-2.4.25.tar.gz
安装apr
# tar zxvf apr-1.5.2.tar.gz
# cd apr-1.5.2
# ./configure --prefix=/user/denglinjie/software/apr-1.5.2
# make && make install
安装apr-util
# tar zxvf apr-util-1.5.4.tar.gz
# cd apr-util-1.5.4
# ./configure --prefix=/user/denglinjie/software/apr-util-1.5.4 --with-apr=/user/denglinjie/software/apr-1.5.2
# make && make install
安装apache
# tar zxvf httpd-2.4.25.tar.gz
# cd httpd-2.4.25
#./configure --prefix=/app/httpd-2.4.25 --with-apr=/app/apr-1.5.2/ \--with-apr-util=/app/apr-util-1.5.4/ --enable-so --enable-deflate --enable-expires \--enable-headers --enable-ssl --enable-rewrite --enable-mpms-shared=all \--with-mpm=prefork --enable-mods-shared=most
用上述命令报了错误如下:
出现configure: WARNING: OpenSSL version is too old;checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures;
错误原因:mac自带的openssl版本太低,
# openssl version
可以看到版本只有0.9.xx
所以需要升级openssl,升级可以自己下载源码包来进行安装升级,也可以用brew来进行升级
安装升级完openssl后,可能是我安装到了我自己的目录下,导致系统无法识别我安装的openssl,还是找的老版本的,所以上面我将--enable-ssl
去掉了,然后加了--with-ssl=/user/denglinjie/software/openssl,就是指定了下openssl的安装目录,然后configure顺利通过
# make
# make install
进入到apache的安装目录
#cd /user/denglinjie/software/httpd-2.4.25/bin
启动apache
# ./httpd -k start
报错:
Permission denied: make_sock: could not bind to address [::]:80Permission denied: make_sock: could not bind to address 0.0.0.0:80no listening sockets available, shutting downUnable to open logs
我看网上说这个的原因有很多种,但是最终解决我的问题是因为权限问题,我切换到root权限,启动httpd就成功了
然后在地址栏输入
127.0.0.1
看到打印出 IT works,则说明http服务器已经启动了
最后,我不可能每次启动http都要进入到它的安装目录去然后start啊?那多麻烦,于是将httpd添加到系统路径下
# vim /etc/profile
在文件里面添加:
export PATH=/user/denglinjie/software/httpd-2.4.25/bin:$PATH
保存后执行
# source /etc/profile 让设置生效
这里还碰到一个小插曲:
上面输出It works是因为apache服务器根目录下有一个Index.html文件,文件的内容是it works, 后来我修改了该文件
的内容,发现访问localhost,还是it works,而不是我修改后的内容,我抓狂了。而且即使我停止了我安装的apache,依然能看到IT works,擦,这是怎
么回事?难道我安装的服务器没有起作用?难道是我mac自带的apache没有删除干净?导致现在访问的还是自带的apache?于是我想方设法的去删除所
有自带apache的余孽,可是依然输出It works,我去,咋回事?
然后不经意在一个帖子上看到说,是缓存吧。缓存?一语惊醒梦中人啊。我换了个浏览器输入Localhost,哎呀我去,直接找不到,然后我把我
之前用的浏览器的缓存清理了下,也找不到了。哈哈。
2. 安装php
在apache安装完之后,可以在apache的根目录下写一个php文件,命名为info.php,内容如下
<?php
phpinfo();
?>
然后在地址栏输入localhost/info.php,发现,网页直接将内容打印了出来,这说明,apache已经安装成功,但是apache还无法解析识别php语句。
所以要安装php。
安装php就简单啦,一行命令搞定,但是前提是你的mac安装了homebrew
# brew install php70 --with-apxs2 --with-apache --with-gmp --with-imap --with-tidy --with-debug
安装好后,可以查看下版本
#php --version
可以看到打印出如下信息:
PHP 7.0.14 (cli) (built: Dec 31 18:27:22) ( NTS DEBUG )
Copyright (c) 1997- The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998- Zend Technologies
但是我的好像还有警告
PHP Warning: PHP Startup: amqp: Unable to initialize module
Module compiled with build ID=API1012,NTS
PHP compiled with build ID=API1012,NTS,debug
These options need to match
in Unknown on line 0
Warning: PHP Startup: amqp: Unable to initialize module
Module compiled with build ID=API1012,NTS
PHP compiled with build ID=API1012,NTS,debug
These options need to match
in Unknown on line 0
好像是有什么版本没有匹配是行,这个问题我暂时没有处理
此时,需要修改apache的httpd.conf文件,这个文件在你的http-2.4.25的conf目录下,修改前请先备份
在文件中添加如下配置,让apache去加载php模块:注意哈,后面那一串是libphp7.so文件的位置,让apache去读取这个文件来加载php
LoadModule php7_module /usr/local/Cellar/php70/7.0.14_7/libexec/apache2/libphp7.so
还得修改AddType,添加如下配置
AddType application/x-httpd-php .php .php7 .php5
这指示apache可以识别的文件类型。
修改完成后 保存,重启apache,此时再在地址栏输入上述地址,就可以看到php的介绍,而不是文件的源代码啦。哈哈,大功告成
3. mysql的安装
mysql的安装我就不说了,这个比较easy,大家自己搞定吧。