ubuntu 14.04 nginx + mysql + php源码安装
本文参考了 http://www.tuicool.com/articles/3iUNFnA 并在细节上做了一些补充。使安装过程更加顺畅。
首先要说的是ubuntu 上操作需要加sudo命令,所以在以下的命令上都要以sudo开始。
先安装一些依赖资源gcc g++ openssl libssl-dev (RedHat、centos才是openssl-devel)
sudo apt-get install openssl sudo apt-get install libssl-dev sudo apt-get install gcc g++
nginx安装
nginx源码包: nginx ,密码:bi79
pcre源码包: pcre ,密码:uvqd
zlib源码包: zlib ,密码:i6pf
下载完成后,以我的为例,放入/usr/local/src中,将三个源码包
tar -zxvf 源码包
进行解压。
然后进入nginx的解压目录。
cd nginx目录
配置里面的--prefix制定了nginx的安装目录,--conf-path制定了nginx配置文件的目录,这里的--with-pcre=后面的目录是pcre的源码包目录,--with-zlib=后面的是zlib源码包的路径。
sudo ./configure --prefix=/usr/local --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.36 --with-zlib=../zlib-1.2.8
sudo make
sudo make install
启动nginx
$/usr/local/nginx/nginx #几个常用的nging命令 $/usr/local/nginx -t #测试默认为值的配置文件是否ok $/usr/local/nginx -c /etc/nginx.conf #指定nginx解析的配置文件 $/usr/local/nginx -s stop|quit|reload|reopen #停止或者重启nginx
mysql安装
mysql源码包: mysql ,密码:7qyu
mysql安装使用的是cmake,没有的自安装,
sudo apt-get install cmake
安装ncurses-devel,在ubuntu下面是
sudo apt-get install libncurses5-dev
设置MYSQL用户和用户组
sudo groupadd mysql
sudo useradd -r -g mysql mysql
创建mysql目录
sudo mkdir -p /usr/local/mysql
sudo mkdir -p /data/mysqldb
解压下载的mysql源码
tar -zxvf 源码包
进入解压的mysql目录
cd mysql目录
下民命令中的-DCMAKE_INSTALL_PREFIX=后面是mysql的安装目录,-DMYSQL_UNIX_ADDR=后面是监听套接字的路径,默认为/tmp/mysql.sock,-DDEFAULT_CHARSET设置服务器字符集,默认是latin1,-DMYSQL_DATADIR设置mysql数据的存储目录。
sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
结尾工作
修改mysql目录所属用户
cd /usr/local/mysql
sudo chown -R mysql:mysql .
修改mysql数据库文件目录所属用户
cd /usr/local/mysql
sudo chown -R mysql:mysql .
创建my.cnf文件
cp /usr/local/mysql/support-files/my-deault.cnf /etc/my.cnf
编辑/etc/my.cn
,添加下面的配置项
[mysqld] port=3306 socket=/usr/local/mysql/mysql.sock datadir=/data/mysqldb character_set_server=utf8 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] socket=/usr/local/mysql/mysql.sock [mysqladmin] socket=/usr/local/mysql/mysql.sock
将mysql添加到服务
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld status
如果上面可以显示MYSQL信息* MySQL is not running
则添加服务ok
初始化mysql数据库
cd /usr/local/mysql
sudo scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
执行完上面的命令,查看/data/mysqldb
目录中的内容,如果生成了内容说明初始化成功。
启动MYSQL
service mysqld start
ps aux | grep mysqld
如果上面的命令之后可以看到mysqld的进程说明启动mysql成功
修改mysql root用户密码
cp /usr/local/mysql/bin/mysql /usr/bin/mysql cp /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin mysqladmin -u root password '123456' mysql -u root -p #输入123456密码
执行晚上面的命令,如果看到Welcome to the MySQL monitor....
说明mysql安装、启动、连接ok。
注意事项
由于这里设置了mysql相关目录都是mysql:mysql,所以如果出现问题可以尝试sudo解决,很可能是权限的问题。
mysql安装完之后启动服务器可能还会有很多问题,下面列几个可能的问题:
-
配置文件的问题,mysql加载配置文件
my.cnf
的时候有个默认顺序:a. /etc/my.cnf b. /etc/mysql/my.cnf c. /usr/local/mysql/my.cnf d. ~/my.cnf
因此要是出现一些很奇怪的不好解决的问题一定要先看看是不是加载了你想要mysql加载的配置文件。
php安装
php源码包: php-5.6.13.tar.gz
freetype源码包: freetype ,密码:m5pc
freetype生成验证码的时候会用到(具体的就是imagettftext这个函数)
准备工作
- freetype安装——生成验证码可能会用到
tar -xvf freetype-2.4.0.tar.bz2 cd freetype-2.4.0 ./configure --prefix=/usr/local/freetype make make install
- 安装curl、png、mcrypt
sudo apt-get install curl libcurl3 libcurl3-dev sudo apt-get install libpng3 libpng3-dev sudo apt-get install libmcrypt4 libmcrypt-dev sudo apt-get install libxml2-dev
下面的安装配置里面。/usr/local/mysql为你安装mysql的目录。
sudo ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --with-mysql=/usr/local/mysql -with-pdo-mysql=/usr/local/mysql --with-pcre-regex --with-iconv --with-zlib --with-mcrypt --with-gd --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl --enable-pdo --with-freetype-dir=/usr/local/freetype
sudo make
sudo make install
php配置
- php.ini管理 看看
/usr/local/php/etc
下面是否又配置文件,有的话cp一份命名为php.ini,没有的话将源码包里面的php.ini*复制一份过来命名为php.ini - php-fpm.conf管理 php-fpm.conf一般在安装目录的/usr/local/php/etc/php-fpm.conf.default这个位置
cd /usr/local/php/etc cp php-fpm.conf.default php-fpm.conf
修改php-fpm.conf中的内容,主要是绑定的ip、端口或者unix socket,下面是我的配置,可以适当参考
pid = run/php-fpm.pid error_log = log/php-fpm.log log_level = notice daemonize = yes rlimit_files = 1024 user = nobody group = nobody listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
启动php-fpm
$cp /usr/local/php/sbin/php-fpm /usr/bin/php-fpm $php-fpm -t #测试默认配置文件是否ok $php-fpm $ps aux | grep php-fpm
如果看到php-fpm的进程说明php-fpm启动成功。 php-fpm的结束
$kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
完!!!