1. 到官网 找到自己想要的nginx版本
wget http://nginx.org/download/nginx-1.7.8.tar.gz 然后解压 tar zxvf nginx-1.7.8.tar.gz cd到解压后的nginx, 编译nginx前需要下载pcre库和zlib库,编辑./configure --prefix=/usr/local/nginx 编译过程中可能会遇到重写模块会需要PCRE库
cd 到下载nginx的目录。wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.bz2 他是bz2结尾的 解压用 tar jxvf pcre-8.37.tar.bz2。(nginx编译中还会需要zlib这个库,我们可以直接用yum安装 yum install zlib)<这里用yum安装这个库,安装过程中,linux提示已经是安装了的。不能安装。我们用yum安装一些库或软件的时候,可能会遇到这个问题。还需要安装对应库的开发包 yum install zlib-devel(某个软件-devel)>
解压后重新编译nginx cd到解压后的nginx的目录里 ./configure --prefix=/usr/local/nginx/ \
--with-pcre=/usr/local/src/pcre-8.37(安装的时候带上pcre库的具体地址)
2.make && makeinstall 自动安装
3.cd nginx目录 ./sbin/nginx 启动nginx服务 (./sbin/nginx -s reload 重启nginx)访问服务器的ip查看nginx是否启动成功, (netstat -antlp |grep 80:查看当前80端口是谁在使用)
服务器中如果Apache nginx都有,Apache会把nginx所需要的80端口占用。可用 ps aux命令查看进程 然后pkill -9 httpd (这了的数字-9是无论如何都杀死进程)有时nginx服务开启失败也会有防火墙的原因
service iptables stop/start/restart
pkill 杀死某个正在运行的进程
配置conf,指向项目路径:
server {
listen 80;
server_name www.pmd.space;
#access_log logs/demo.phalconplus.access.log main;
index index.php index.html index.htm;
set $root_path '/data/think';
root $root_path;
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php?_url=/$1 last;
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
root $root_path;
}
location ~ /\.ht {
deny all;
}
}
新建一个conf文件写入以上内容,include进nginx.conf里面。修改各项配置。运行。
二.下载php
wget http://cn2.php.net/distributions/php-5.6.16.tar.gz (这里注意了,我们直接在php官网下载的链接可能是一个跳转脚本链接,在linux下会导致下载的php压缩包打不开)
编译php之前需要一系列的库文件,yum install libxml2 libxml2-devel bzip2 bzip2-devel gd gd-devel libpng libpng-devel ncurses ncurses-devel libcurl libcurl-devel libmcrypt libmcrypt-devel。
进入到php目录,
./configure \
--prefix=/usr/local/php56 \
--with-config-file-path=/usr/local/php56/etc \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-opcache \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--with-readline
参数说明
""" 安装路径 """
--prefix=/usr/local/php56 \
""" php.ini 配置文件路径 """
--with-config-file-path=/usr/local/php56/etc \
""" 优化选项 """
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
""" 启用 opcache,默认为 ZendOptimizer+(ZendOpcache) """
--enable-opcache \
""" FPM """
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
""" MySQL """
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
""" 国际化与字符编码支持 """
--with-gettext \
--enable-mbstring \
--with-iconv \
""" 加密扩展 """
--with-mcrypt \
--with-mhash \
--with-openssl \
""" 数学扩展 """
--enable-bcmath \
""" Web 服务,soap 依赖 libxml """
--enable-soap \
--with-libxml-dir \
""" 进程,信号及内存 """
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
""" socket & curl """
--enable-sockets \
--with-curl \
""" 压缩与归档 """
--with-zlib \
--enable-zip \
--with-bz2 \
""" GNU Readline 命令行快捷键绑定 """
--with-readline
复制配置文件
cp php.ini-development /usr/local/php56/etc/php.ini
cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf
(主要说明,安装目录在哪里,需要安装一些什么库) cd进入到安装好的php目录,把etc下的php-fpm.conf.default 复制一 修改php-fpm.conf,user=nobody,group=nobody。并把php.fpm.conf中的pid=run/php-fpm.conf前面的注释去掉,都修改为www-data,然后新建用户组www-data,用户www-data
cd 到php解压目录 cp php.ini-production /usr/local/php/lib。
cd进入到安装目录中的sbin目录,启动php服务
整合php和nginx,vim nginx/conf/nginx.conf 把匹配.php结尾的代码注释删除掉 ,把nginx收到访问php的地址改为自己php所在地址,更改php文件目录到对应的目录,可以在nginx下的html创建一个index.php 内容: 看是否能输出以及php.ini信息 确定配置是否生效。
三编译mysql
创建用户:
代码: useradd 选项 用户名 其中各选项含义如下:
代码: -c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
chown -R mysql:mysql /usr/local/mysql
msyql5.5之后编译都需要用的到cmake,我们需要先安装, yum -y install cmake ncurses ncurses-devel。
然后下载mysql,下载mysql的时候,注意版本的选择,一些版本可能会没有Cmakelists.txt文件,会导致编译出错,链接:http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.50.tar.gz
然后输入命令进行编译,安装目录以及所需的一些配置文件:
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=yes
没报错就 make && make install 。创建用户组和一个用户名 groupadd mysql,useradd mysql 。
然后改变安装目录下所有文件的用户及组为「mysql] chown -R mysql . chgrp -R mysql .
接着初始化数据库并设定安装目录:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql
然后将目录的所有文件的所属用户改为「root」,接着将目录「data」的所属用户改为「mysql」
chown root . chown -R mysql data
把mysql安装目录中的配置文件拷贝一份重命名 cp support-files/my-medium.cnf /etc/my.cnf
接着启动mysql守护进程:bin/mysqld_safe --user=mysql 。这一步会在mysql目录下产生之前编译设定的run目录文件夹(这一步有可能会出错,我测试的时候[ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)是因为自己没创建目录导致找不到,新建一个文件之后,把文件归属用户设置为mysql 。如果产生了run目录,而里面没有mysql.sock文件,我们看看run目录的权限,更改为mysql用户mysql组。重新初始化数据库和开启mysql守护进程),初始化数据库后没有mysql.sock文件,改变mysql目录的用户和用户组,重新 初始化数据库
服务端能打开mysql php不能连接mysql
打开php.ini 更改以下配置
localhost连接数据库使用的sock连接
127.0.0.1用的tcl模式连接数据库
./bin/mysqladmin -u root password '123456'为自己的root用户设置密码。
连接数据库:./bin/mysql -u root -p