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