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安装完之后启动服务器可能还会有很多问题,下面列几个可能的问题:

  1. 配置文件的问题,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这个函数)

准备工作

  1. freetype安装——生成验证码可能会用到
tar -xvf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype
make
make install
  1. 安装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配置

  1. php.ini管理 看看/usr/local/php/etc下面是否又配置文件,有的话cp一份命名为php.ini,没有的话将源码包里面的php.ini*复制一份过来命名为php.ini
  2. 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`

完!!!

原文地址:https://www.cnblogs.com/dilei/p/4964232.html