1.安装基本
yum -y install gcc automake autoconf libtool make gcc-c++ glibc
2.安装php
yum -y install libmcrypt-devel mhash-devel libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5 krb5-devel libidn libidn-devel openssl openssl-devel
下载wget http://hk1.php.net/get/php-5.6.30.tar.gz/from/this/mirror
解压 tar -zxvf php-5.4.29.tar.gz
进入目录cd php-5.4.29
执行编译安装
|||||||||||
(./configure --prefix=/usr/local/php5 --enable-fpm (--with-apxs2=/usr/local/apache/bin/apxs)如果安装apache的话加上这句
{
./configure --prefix=/usr/local/php5  --enable-fpm --with-mcrypt \
--enable-mbstring --disable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \
--with-gd --with-jpeg-dir --with-openssl
}(这是安装多的可以不用管))
或
本人的('./configure' '--prefix=/usr/local/php/php5.6' '--with-config-file-path=/usr/local/php/php5.6/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-freetype-dir' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--enable-xml' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--enable-sockets' '--enable-zip' '--with-gettext' '--with-mcrypt')
|||||||||||||||
从总体来看就是设置安装的PHP需要或不需要哪些功能,安装目录是什么, 需要哪些库--prefix=/home/reetsee/environment/php :把PHP安装在「/home/reetsee/environment/php」目录下--enable-fpm :为了让Nginx和PHP能够互相「交谈」,需要一个叫做FastCGI的工具,因此PHP需要使用PHP-FPM来管理FastCGI。--with-openssl :安装OpenSSL库其它的「--with-xxx」即需要xxx库,「--enable-yyy」即开启yyy的支持,「--disable-zzz」即禁用zzz。
make
make install
首先是配置php-fpm
cd /usr/local/php5/etc/
cp php-fpm.conf.default php-fpm.conf
再对php-fpm.conf的内容进行修改,将「user = nobody」,「group = nobody」分别改为「user = www-data」,「group = www-data」,
保存后需要保证名为「www-data」的用户以及组存在,因此在命令行执行下列语句:
groupadd www-data
useradd -g www-data www-data
然后
cp php-5.6.30/php.ini-production /usr/local/php5/lib/php.ini
fpm启动为/usr/local/php5/sbin/php-fpm
2.安装nginx
安装Nginx前也有一些库需要下载,分别是pcre,zlib以及openssl 。这里要说明的是下载这3个库的压缩包后,对其进行解压缩即可,无需安装。openssl要下载是因为Nginx在安装时需要的是openssl的源码(与PHP的安装不同)
pcre:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
tar -zxvf pcre-8.39.tar.gz
mv pcre-8.39 /usr/local/pcre
zlib:
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
mv zlib-1.2.11 /usr/local/zlib
openssl:
wget http://www.openssl.org/source/openssl-1.0.2s.tar.gz
tar -zxvf openssl-1.0.2s.tar.gz
mv openssl-1.0.2s /usr/local/openssl
开始下载nginx
wget http://nginx.org/download/nginx-1.12.0.tar.gz
解压
tar -zxvf nginx-1.12.0.tar.gz
进入目录
cd nginx-1.12.0
先编译安装
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre=/usr/local/pcre839 --with-zlib=/usr/local/zlib1211 --with-openssl=/usr/local/openssl102 --with-http_v2_module 这里附上一个配置说明列表
--prefix=path 定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。--sbin-path=path 设置nginx的可执行文件的路径,默认为 prefix/sbin/nginx.--conf-path=path 设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf.--pid-path=path 设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid.--error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log.--http-log-path=path 设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为prefix/logs/access.log.--user=name 设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。--group=name 设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。--with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。--with-poll_module --without-poll_module 启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。--without-http_gzip_module — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。--without-http_rewrite_module 不编译重写模块。编译并运行此模块需要PCRE库支持。--without-http_proxy_module — 不编译http_proxy模块。--with-http_ssl_module — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。--with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.30)需要从PCRE网站下载并解压。其余的工作是Nginx的./ configure和make来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。--with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。--with-zlib=path —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。--with-cc-opt=parameters — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".--with-ld-opt=parameters —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:--with-ld-opt="-L /usr/local/lib".
执行成功后安装
make
make install
修改配置文件/usr/local/nginx/conf/nginx.conf
第3~第7个「#」去掉,就是取消注释,同时将「/scripts$fastcgi_script_name」改为「$document_root$fastcgi_script_name」,即变为下面这样:
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #   
        location / {
                if (!-e $request_filename){
                        rewrite ^(.*)$ /index.php?s=$1 last;
                        break;
                }
        }
        location ~ .+\.php($|/) {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^(.+\.php)(/.*)$;
            fastcgi_param  PATH_INFO $fastcgi_path_info;
            include        fastcgi.conf;
         }
下面是我的配置文件
server{
        listen  80;
        server_name     blog.97yun.net;
        root    /home/www;
        index   index.php index.html index.htm;
location ~ .+\.php($|/) {
                         fastcgi_pass   127.0.0.1:9000;
                         fastcgi_index  index.php;
                         fastcgi_connect_timeout 900;
                         fastcgi_read_timeout 900;
                         fastcgi_split_path_info  ^(.+\.php)(/.*)$;
                         fastcgi_param  PATH_INFO $fastcgi_path_info;
                         include        fastcgi.conf;
                }
        location / {
                if (!-e $request_filename){
                        rewrite ^(.*)$ /index.php?s=$1 last;
                        break;
                }
        }
access_log /home/www/log/nginx_access.log combined;
error_log /home/www/log/nginx_error.log;
}
启动
/usr/local/nginx/sbin/nginx
重启
/usr/local/nginx/sbin/nginx -s relod
关闭
nginx -s stop  :快速停止nginx
         quit  :完整有序的停止nginx
查看进程
ps -ef | grep nginx
从容停止Nginx:
kill -QUIT 主进程号  
例如:kill -QUIT 16391
快速停止Nginx:
kill -TERM 主进程号  
强制停止Nginx:
kill -9 主进程号 
3.安装mysql
下面输入命令添加名为「mysql」的用户和组,为后续步骤作准备:
groupadd mysql
useradd -r -g mysql mysql
下载php5.7.18.tar.gz  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18.tar.gz
解压tar压缩包  tar -zxvf MySQL-5.7.18.tar.gz
先安装mysql的依赖和工具(主要是cmake) yum install cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel
进入MySQL的源码目录,我的cmake命令如下:
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
3.安装mysql最简单的方法  
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
安装成功后重启mysql服务。
# service mysqld restart
设置密码
set password for 'root'@'localhost' =password('121416');
mysql配置文件为/etc/my.cnf
最后加上编码配置
[mysql]
default-character-set =utf8
远程连接设置
把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户。
 grant all privileges on *.* to root@'%'identified by 'password';
如果是新用户而不是root,则要先新建用户
 create user 'username'@'%' identified by 'password';  
删除用户
  DROP USER 'username'@'host'; 
安装apache
下载apache httpd-2.4.25.tar.gz    wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.25.tar.gz
下载完进行解压  tar -zxvf httpd-2.4.25.tar.gz
然后进入解压后的目录  cd httpd-2.4.25
先执行 ./configure --prefix=/usr/local/apache
如果报错configure: error: APR not found.  Please read the documentation.就是没有APR,
先下载APR	
wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
与apr-util
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
下载完了然后对这两个tar进行解压
tar -zxvf apr-1.4.5.tar.gz     tar -zxvf apr-util-1.3.12.tar.gz
然后进行对这两个解压完的文件夹重命名
mv apr-1.4.5 apr     mv apr-util-1.3.12 apr-util
然后把这两个文件夹剪切到httpd-2.4.25/srclib/目录里
mv apr apr-util httpd-2.4.25/srclib/
然后再进行下载个依赖pcre
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
解压
tar -zxvf pcre-8.39.tar.gz
进入pcre的目录
cd pcre-8.39
进行安装
./configure --prefix=/usr/local/pcre-8.39
结束后使用make
make
make结束后安装
make install
然后就可以安装apache了进入apache的目录
cd httpd-2.4.25
进行指定目录安装
./configure --prefix=/usr/local/apache --enable-so -with-pcre=/usr/local/pcre-8.39/bin/pcre-config -with-included-apr
然后进行make编译
make
然后进行安装
make install
完成安装后进入/usr/local/apache/conf/httpd.conf
修改或添加ServerName localhost:80
安装完成后启动服务测试
cd /usr/local/apache/bin/
进入目录后启动
apachetl -k start
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
经过上面这条命令操作后你以后开启apache或者关闭重启就可以直接输入
service httpd start
stop停止,restart是重启 把apache下的bin加入环境变量里
echo 'export PATH=/usr/local/apache/bin:$PATH'>>/etc/profile
source /etc/profile
下面进行php与apache连接
进入apache的httpd.conf
vim /usr/local/apache/conf/httpd.conf
进去添加一行
AddType application/x-httpd-php .php
再修改DirectoryIndex这一行
DirectoryIndex index.html index.php
LoadModule php7_module "C:/code/php-7.1.9-VC14-ts/php7apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/code/php-7.1.9-VC14-ts"
配置多网站

	DocumentRoot "${SRVROOT}/docs/websocket"
	ServerName websocket.com
	DirectoryIndex index.html index.htm index.php
	
		Options FollowSymLinks
		AllowOverride all
    	Require all granted#    ErrorLog "logs/dummy-host2.example.com-error.log"
#    CustomLog "logs/dummy-host2.example.com-access.log" common最后一个是linux上设置定时任务
crontab -e//编辑某个用户的cron服务
crontab -l//列出某个用户cron服务的详细内容
crontab -r//删除某个用户的cron服务
crontab格式
分	小时	日	月	星期	命令
*	*	*	*	*	*
0-59	0-23	1-30	1-12	0-6	command
注:*代表取值范围内的数字
   / 代表每、比如每分钟
*/1 * * * * php /data/www/cron.php  意思是每分钟执行
50 7 * * * /sbin/service ssh start 意思是每天7:50开启ssh服务




ubutu参考https://developer.aliyun.com/article/764562