澳门新浦京手机版Mac下使用Brew搭建PHP(LNMP/LAMP)开发环境

Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境。但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容易手动搭建,可控性很高。

用惯了在Windows上一个appserv或phpStudy压缩包搞定,要在MAC OSX
10.10上捣腾一个PHP开发环境还不大习惯。但自己亲自配一下环境还是有所收获的。众所周知OSX上自带了apache和php,所以这两个搞起来还比较顺利。装MySQL的最新版5.6.22版颇费周折,本文详细记录之。

今天我说一下如何在centos上搭建lamp环境,即linux+apache+mysql+php
这是一个标准的web服务器的环境。

Brew

apache的配置

apache已经自带了,只需如下三个命令就可以了。
开启apache服务 sudo apachectl start
停止apache服务 sudo apachectl stop
重启服务澳门新浦京手机版 , sudo apachectl restart
查看版本 httpd -v

手动打开apache服务后,在浏览器输入localhost,将看到如下:
澳门新浦京手机版 1

程序的根目录在/Library/WebServer/Documents/ 下,这个It works
就是里面的info.php打印出来的。下面介绍如何将apache的这个默认目录更改到用户目录下。
1,在自己的用户目录下新建一个Sites文件夹,我的用户目录为linuxidc

2,进到cd /etc/apache2/users/目录下,sudo vim username.conf,内容为:

<Directory "/Users/linuxidc/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
  • 1

上面第一行里的linuxidc就是用户目录。然后将该文件权限改为644:
sudo chmod 644 username.conf

3,进到/etc/apache2/目录,sudo vim httpd.conf 将下面三句话的注释去掉:
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
前两句应该已经不带注释了,把第三句注释放开。
然后找到Include /private/etc/apache2/extra/httpd-userdir.conf
注释放开。
PS:在vim下只要切换到命令模式,然后输入/”words you need
find”就能快速找到需要查找的词。

4,进到/etc/apache2/extra/目录,将Include
/private/etc/apache2/users/*.conf 这句话放开注释。

然后终端输入:sudo apachectl restart 重启apache,浏览器输入:
loacal/~linuxidc/
就能看到效果了。(linuxidc是我的用户目录的名字,后面不用再加/Sites
经过以上步骤apache就搞好了。

下面我讲一下lamp所需要的软件和他的结构:

brew对于mac,就像apt-get对于ubuntu,安装软件的好帮手,不能方便更多…

PHP配置

PHP的配置非常简单,就一个事,进到/etc/apache2/目录,编辑httpd.conf,找到LoadModule
php5_module libexec/apache2/libphp5.so将其放开注释就行了。

然后sudo apachectl restart
重启,在用户目录的Sites文件夹下,新建一个index.php,里面echo phpinfo()
,就可以看到效果了:
澳门新浦京手机版 2

php是挂在Apache下面执行的一个模块,而网页需要php程序控制mysql,php就需要支持mysql的模块才可以,所以至少需要以下几个软件:

brew的安装方式如下:

安装MySQL5.6.22

这个版本是最新的MySQL,安装方法跟5.5的略有不同。在官网下载mysql-5.6.22-osx10.9-x86_64.dmg,下面是安装方法:
1,双击安装的时候,不要勾选StartUp Item这一项:
澳门新浦京手机版 3
如此安装完毕后,在设置---MySQL手动开启MySQL服务。
澳门新浦京手机版 4
我这里已经打开了MySQL服务。下面要将其设置为开机自动启动。

2,默认状态下,我们用mysql的命令每次都要输入全路径,如sudo
/usr/local/mysql/support-files/mysql.server start
开启mysql服务,/usr/local/mysql/bin/mysql
-v查看mysql版本,得先把bin目录配到环境变量里。切换到用户根目录 ,vim
.bash_profile,输入:
export PATH=”/usr/local/mysql/bin:$PATH”
保存后,source
.bash_profile使环境变量生效。接着就可以直接在终端里输入mysql命令了。
最后,通过mysqladmin -u root password ‘yourpasswordhere’
给mysql的root用户设置密码。单引号里的内容就是要设的密码。

3,修复socket error的问题。有一个负责mysql 服务器
客户端通讯的socket文件,mysql的这个版本将其放在/tmp目录,但是OSX却默认的找
/var/mysql 这个目录,所以要建个软链接。新建目录 /var/mysql, 然后sudo ln
-s /tmp/mysql.sock /var/mysql/mysql.sock 就ok了。

4,让mysql开机自动启动。
sudo vim sudo nano
/Library/LaunchDaemons/com.mysql.mysql.plist,里面内容输入:

KeepAlive

Label
com.mysql.mysqld
ProgramArguments

/usr/local/mysql/bin/mysqld_safe
–user=mysql

保存后,修改权限:
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
这样mysql就ok了!

httpd(提供apache主程序)

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

phpMyAdmin的安装


下载,我下的是phpMyAdmin-4.4.2-all-languages.zip这个版本,将其解压。然后最外层文件夹名字修改为phpmyadmin,进到~/Sites/phpmyadmin这个目录,新建文件夹:mkdir
config 修改读写权限:chmod o+w config
然后浏览器输入: (注意
中间的linuxidc 换成自己的用户名称)
澳门新浦京手机版 5
点击 “新建服务器“,我上面已经新建好了,然后在这个界面:
澳门新浦京手机版 6
密码处输入mysql的root用户密码。然后点击“应用“,这样config文件夹下就生成了config.inc.php,将该文件拷贝到phpmyadmin的根目录下。然后删除整个config文件夹。输入
就可以看到登陆phpmyadmin的界面了。 如此,phpMyAdmin搞定。

mysql(mysql客户端)

brew常用选项

读写权限和分组问题

最后遗留一个读写权限和归属问题,如果本地开发测试的话,这个步骤可以忽略。如果想让自己的mac切实作为一台服务器,那么这个还要设置下的。这个步骤等同于在布阿里云代码的时候,让public_html文件夹的所有东西可写,且归属于www一个意思。假设Sites文件夹下有个自己的项目:testsite
sudo chmod -R a+w ~/Sites/testsite 设置所有人都可以读写

mysql_server(mysql服务器程序)

brew install xxx
brew uninstall xxx
brew list 
brew update xxx

php(php主程序含给apache使用的模块)

Apache || Nginx

php-devel(php的发展工具)

Apache

php-mysql(提供给php程序读取mysql数据库的模块)

Apache的话使用mac自带的基本就够了,我的系统是10.9,可以使用以下命令控制Apache

下面说一下lamp的配置文件:

sudo apachectl start
sudo apachectl restart
sudo apachectl stop

apache的结构:

唯一要改的是主目录,mac默认在home下有个sites(站点)目录,访问路径是

1./etc/httpd/conf/httpd.conf 
httpd是apache的主要配置文件,从整体上看的话,apache也不过是一个配置文件,里面包括了很多参数,后面的教程会继续讲。

http://localhost/~user_name

2./var/www/html 
这个是centos默认的apache首页所在目录,举个例子,当你在网站里面输乳http://ip的时候,读取的目录就是这个。

这样很不适合做开发用,修改/etc/apache2/httpd.conf内容

/var/www/
这个目录里面存放着apache里面的资源,有兴趣的可以安装一下apache可以看一下
主要是一些图标。网页程序,日志文件

DocumentRoot "/Users/username/Sites"
<Directory />
    Options Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

mysql的结构

这样sites目录就是网站根目录了,代码都往这个下头丢

1./etc/my.conf  这个是mysql的配置文件,里面包含了mysql的配置信息,

Nginx

2./var/lib/mysql/  这个是mysql数据库存放的文件目录。

要使用Nginx也比较方便,首先安装

php的结构

brew install nginx
  1. /etc/php.ini 
    这个是php的主要配置文件,包括了php是否允许用户上传文件等一些配置信息

启动关闭Nginx的命令如下(如果想要监听80端口,必须以管理员身份运行)

/usr/lib64/httpd/modules/libphp5.so 
这个是php提供给apache使用的模块。这个也是我们能都在apache网页上使用php程序的重要模块。

#打开 nginx
sudo nginx
#重新加载配置|重启|停止|退出 nginx
nginx -s reload|reopen|stop|quit
#测试配置是否有语法错误
nginx -t

/etc/php.d/mysql.ini    /usr/lib64/php/moudles/mysql.so
php支持mysql的接口。

配置Nginx

下面主要的还有一个phpmyadmin了 
这个是给mysql提供的图像化管理工具。操作就像windows一样,图形化界面。下面我们来具体实现一下,

cd /usr/local/etc/nginx/
mkdir conf.d

没有云主机的可以去腾讯云进行学生认证,一元获取一台自己的云主机。

修改Nginx配置文件

1、安装Apache

vim nginx.conf

[root@localhost ~]# yum -y install httpd

主要修改位置是最后的include

# 开机自启动

worker_processes  1;  

error_log       /usr/local/var/log/nginx/error.log warn;

pid        /usr/local/var/run/nginx.pid;

events {
    worker_connections  256;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log      /usr/local/var/log/nginx/access.log main;
    port_in_redirect off;
    sendfile        on; 
    keepalive_timeout  65; 

    include /usr/local/etc/nginx/conf.d/*.conf;
}

[root@localhost ~]# chkconfig httpd on

修改自定义文件

# 启动httpd 服务

vim ./conf.d/default.conf

[root@localhost ~]# service httpd start

增加一个监听端口

### 安装apache 一些扩展

server {
    listen       80;
    server_name  localhost;

    root /Users/username/Sites/; # 该项要修改为你准备存放相关网页的路径

    location / { 
        index index.php;
        autoindex on; 
    }   

    #proxy the php scripts to php-fpm  
    location ~ .php$ {
        include /usr/local/etc/nginx/fastcgi.conf;
        fastcgi_intercept_errors on; 
        fastcgi_pass   127.0.0.1:9000; 
    }   

}

root@localhost ~]# yum -y install httpd-manual mod_ssl mod_perl
mod_auth_mysql

这个时候还不能访问php站点,因为还没有开启php-fpm。

现在直接在浏览器键入  或  
,应该会看到Apache的测试页面

虽然mac
10.9自带了php-fpm,但是由于我们使用了最新的PHP,PHP中自带php-fpm,所以使用PHP中的php-fpm可以保证版本的一致。

这里需要注意iptables的设置哦。

这里的命令在安装完下一步的php后再执行

2、安装配置MySQL

sudo nginx
sudo php-fpm -D

# mysql          客户端程序

PHP

# mysql-server    服务端程序

PHP在mac下默认安装了,但是不好控制版本,利用brew可以再mac下安装最新版本,甚至是多个版本,我装了php5.5

# mysql-devel    开发设计的库

brew update
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
# brew install php55 --with-fpm #Nginx
brew install php55 #Apache

[root@localhost ~]# yum -y install mysql mysql-server mysql-devel

然后修改php的cli路径和apache使用的php模块。在.bashrc或.zshrc里头加以下内容

# 开机启动

#export PATH="$(brew --prefix josegonzalez/php/php55)/bin:$PATH" 
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"

[root@localhost ~]# chkconfig mysqld on

就用刚刚安装的php代替了系统默认cli的php版本。然后在/etc/apache2/httpd.conf下增加

# 启动mysqld服务

LoadModule php5_module /usr/local/Cellar/php55/5.5.8/libexec/apache2/libphp5.so

[root@localhost ~]# service mysqld start

这样就对apache使用的php版本也进行了修改。

# 进行一些安全性配置

后面会用到mongo和mysql,所以可以直接利用下面命令安装php模块,其他模块也类似

[root@localhost ~]# /usr/bin/mysql_secure_installation

brew install php55-mysql
brew install php55-mongo

[root@localhost ~]# netstat -tulpn | grep -i mysql

MySQL

tcp        0      0 0.0.0.0:3306          0.0.0.0:*          LISTEN   
  1723/mysqld

mac不自带mysql,这里需要重新安装,方法依然很简单

OK, 我们看到mysqld已经启动,监听在3306端口上。

brew install mysql
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
sudo chown -R your_user /usr/local/var/mysql/

3、安装php

第一句是安装,后面的是确保正常使用。然后是启动命令

安装相关模块:为了让PHP支持MySQL,我们可以安装php-mysql软件包;也可使用以下命令搜索可用的php模块

mysql.server start

[root@localhost ~]# yum -y install php php-mysql

最好给mysql设个密码,方法如下

# 安装php常用扩展

mysqladmin -u root password 'xxx'

[root@localhost ~]# yum search php

如果想修改mysql的配置,在/usr/local/etc下建立一个my.cnf,例如增加log

[root@localhost ~]# yum -y install gd php-gd gd-devel php-xml
php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap

[mysqld]
general-log
general_log_file = /usr/local/var/log/mysqld.log

### 重启httpd服务,这一步很重要

MongoDB

[root@localhost ~]# service httpd restart

MongoDB可以说是最简单的一个,直接执行

然后,我们提供php页面,测试

brew install mongodb

[root@localhost ~]# cd /var/www/html/

启动方法

[root@localhost html]# vi index.php

mongod --fork

phpinfo();

PHPMyAdmin

?>

phpmyadmin几乎是管理mysql最容易的web应用了吧,每次我都顺道装上。

  ,应该会看到如下页面:

1.去官网下载最新的版本
2.解压到~/Sites/phpmyadmin下
3.在phpmyadmin目录下创建一个可写的config目录
4.打开
5.将config下生成的config.inc.php移到phpmyadmin根目录下
6.删除config

澳门新浦京手机版 7

这样就装好了,虽然可能有点小复杂,但是来一次就习惯了。

4、安装配置phpMyAdmin

这里很可能会遇到2002错误,就是找不到mysql.sock的问题,用下面方法解决

安装好MySQL,Apache及PHP后,为了可视化的管理MySQL数据库,我们可以安装phpMyAdmin。到其官网下载最新版本:https://www.phpmyadmin.net/

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

[root@localhost ~]# unzip phpMyAdmin-4.2.6-all-languages.zip

RockMongo

[root@localhost ~]# mv phpMyAdmin-4.2.6-all-languages
/var/www/html/phpmyadmin

RockMongo是MongoDB很好用的一个web应用,安装也很容易

[root@localhost ~]# cd /var/www/html/phpmyadmin

1.去官网下载最新版本
2.解压到~/Sites/rockmongo下
3.运行

[root@localhost ~]# cp libraries/config.default.php config.inc.php

完成

[root@localhost ~]# vi cnfig.inc.php

这样就在mac下配置好一个php开发环境了,enjoy it!

$cfg[‘PmaAbsoluteUri’] = ”;这里填写 phpMyAdmin 的访问网址。

$cfg[‘Servers’][$i][‘host’] = ‘localhost’; // MySQL hostname or IP
address

$cfg[‘Servers’][$i][‘port’] = ”; // MySQL port – leave blank for
default port

$cfg[‘Servers’][$i][‘user’] = ‘root’; // 填写 MySQL 访问
phpMyAdmin 使用的 MySQL 用户名,默认为 root。

fg[‘Servers’][$i][‘password’] = ”; // 填写对应上述 MySQL
用户名的密码。

澳门新浦京手机版 8

# 然后重启,httpd服务

[root@localhost ~]# service httpd restart

在浏览器键入 即可访问。

然后我们会有时会发现打开之后出现php的版本太低的问题 
因为yum源提供的版本太低 ,这个时候需要我们来升级一下php的版本

1.查看已经安装的php版本号

键入下面代码:

php -v

出现下面代码:

PHP 5.3.3 (cli) (built: Jul 9 2015 17:39:00)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

好,我们继续。

2.安装Remi跟EPEL RPM源

如果你还没安装,则输入以下代码:

wget

&& rpm -Uvh epel-release-latest-6.noarch.rpm

wget && rpm
-Uvh remi-release-6*.rpm

下载之后:

nano /etc/yum.repos.d/remi.repo

然后对里面内容进行以下修改:

[remi]

name=Remi’s RPM repository for Enterprise Linux 6 – $basearch

#baseurl=

mirrorlist=

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

还有以下:

[remi-php56]

name=Remi’s PHP 5.6 RPM repository for Enterprise Linux 6 – $basearch

#baseurl=

mirrorlist=

# WARNING: If you enable this repository, you must also enable “remi”

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

按CTRL+O保存,CTRL+X关闭编辑器

3.现在可以yum命令直接升级了

输入以下代码

yum -y upgrade php*

一旦更新完毕,再次查看php版本号

php -v

出现以下信息

PHP 5.6.28 (cli) (built: Nov  9 2016 07:23:55)

然后就大功告成了

命令行部分参考:

http://www.linuxidc.com/Linux/2014-07/104563.html

http://www.cnphp6.com/archives/145161

发表评论

电子邮件地址不会被公开。 必填项已用*标注