评论

收藏

[Unix] FreeBSD7.0编译安装nginx+php+mysql

服务系统 服务系统 发布于:2021-09-22 18:30 | 阅读数:439 | 评论:0

环境
系统:FreeBSD7.0
软件:mysql-5.0.51a,nginx-0.6.30,lighttpd-1.4.19,php-5.2.6
所有软件都安装到/usr/local/vhost,如果需要请自行修改
一、下载源代码
cd /usr/ports/databases/mysql50-server/
make fetch
cd /usr/ports/www/nginx-devel/
make fetch
cd /usr/ports/lang/php5
make fetch
cd /usr/ports/www/lighttpd
make fetch
二、编译安装
MySQL
cd /usr/ports/distfiles/
tar -jxf mysql-5.0.51a.tar.gz 
cd mysql-5.0.51a
 ./configure --prefix=/usr/local/vhost/mysql --with-charset=utf8 --with-extra-charsets=all --with-big-tables --with-pthread
make &&make install
Nginx
cd /usr/ports/devel/pcre
make install clean
cd /usr/ports/distfiles/
tar -jxf nginx-0.6.30.tar.gz 
cd nginx-0.6.30
./configure --prefix=/usr/local/vhost/nginx --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_sub_module
make &&make install
Lighttpd
(安装lighttpd是为了得到启动fastcgi进程)
cd /usr/ports/distfiles/
tar -jxf lighttpd-1.4.19.tar.bz2 
cd lighttpd-1.4.19
./configure --prefix=/usr/local/vhost/lighttpd
Php
cd /usr/ports/textproc/libxml2
make install clean
cd /usr/ports/ftp/curl
make install clean
cd /usr/ports/graphics/jpeg
make install clean
cd /usr/ports/graphics/png
make install clean
cd /usr/ports/devel/gettext
make install clean
cd /usr/ports/distfiles/
tar -jxf php-5.2.6.tar.bz2 
cd php-5.2.6
./configure --prefix=/usr/local/vhost/php --with-mysql=/usr/local/vhost/mysql -enable-fastcgi --enable-sockets --enable-ftp --enable-zip --enable-mbstring --enable-mbregex --enable-calendar --with-curl=/usr/local/clude --with-curlwrappers --disable-debug --enable-inline-optimization --with-zlib --with-gd --with-kerberos --with-gettext --enable-force-cgi-redirect --with-jpeg-dir=/usr/inlocal/clude --with-png-dir=/usr/local/include --with-bz2 --enable-pcntl --with-iconv 
make && make install
cp php.ini-dist /usr/local/vhost/php/lib/php.ini
三、配置

MySQL
cd /usr/local/vhost/mysql
pw adduser mysql -d /dev/null -s /sbin/nologin
bin/mysql_install_db
cp share/mysql/mysql.server ./
chmod +x mysql.server
chown -R mysql ./
启动
引用:/usr/local/vhost/mysql/mysql.server start


配置nginx
cd /usr/local/vhost/nginx/
pw adduser webuser -d /dev/null -s /sbin/nologin
cp /usr/local/vhost/lighttpd/bin/spawn-fcgi ./sbin/
rm -rf /usr/local/vhost/lighttpd
vi sbin/php.sh
#!/bin/sh
/usr/local/vhost/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 8 -u webuser -f /usr/local/vhost/php/bin/php-cgi
引用:chmod +x sbin/php.sh


启动php for fast-cgi
引用:sbin/php.sh


vi conf/enable_php
location ~ \.php$ {
root       html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /usr/local/vhost/nginx/html$fastcgi_script_name;
fastcgi_param  QUERY_STRING     $query_string;
fastcgi_param  REQUEST_METHOD   $request_method;
fastcgi_param  CONTENT_TYPE     $content_type;
fastcgi_param  CONTENT_LENGTH   $content_length;
fastcgi_param  SCRIPT_NAME    $fastcgi_script_name;
fastcgi_param  REQUEST_URI    $request_uri;
fastcgi_param  DOCUMENT_URI     $document_uri;
fastcgi_param  DOCUMENT_ROOT    $document_root;
fastcgi_param  SERVER_PROTOCOL  $server_protocol;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE  nginx/$nginx_version;
fastcgi_param  REMOTE_ADDR    $remote_addr;
fastcgi_param  REMOTE_PORT    $remote_port;
fastcgi_param  SERVER_ADDR    $server_addr;
fastcgi_param  SERVER_PORT    $server_port;
fastcgi_param  SERVER_NAME    $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS  200;
}
vi conf/nginx.conf
user  webuser webuser;
worker_processes  1;
events {
  worker_connections  4096;
  use kqueue;
}

http {
  include     mime.types;
  default_type  application/octet-stream;
  #log_format  main  '$remote_addr - $remote_user [$time_local] $request '
  #          '"$status" $body_bytes_sent "$http_referer" '
  #          '"$http_user_agent" "$http_x_forwarded_for"';
  #access_log  logs/access.log  main;
  client_header_timeout  3m;
  client_body_timeout  3m;
  send_timeout       3m;
  client_max_body_size  5m;
  client_header_buffer_size  1k;
  large_client_header_buffers  4 4k;
  gzip on;
  gzip_min_length  1100;
  gzip_buffers   4 8k;
  gzip_types     text/plain;
  output_buffers   1 32k;
  postpone_output  1460;
  sendfile     on;
  tcp_nopush     on;
  tcp_nodelay    on;
  send_lowat     12000;
  keepalive_timeout  75 20;

  server {
    listen     80;
    server_name  localhost;
    location / {
      root   html;
      index  index.php index.html index.htm;
    }
if (-d $request_filename){
      rewrite ^/(.*)([^/])$ https://$host/$1$2/ permanent;
    }
location /nginx_status {
 stub_status on;
  access_log   off;
}
include enable_php;
error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   html;
    }
  }
}
测试配置文件
引用:sbin/nginx -t
2008/05/08 11:50:19 [info] 3336#0: the configuration file /usr/local/vhost/nginx/conf/nginx.conf syntax is ok
2008/05/08 11:50:19 [info] 3336#0: the configuration file /usr/local/vhost/nginx/conf/nginx.conf was tested successfully



vi html/phpinfo.php
<?php
phpinfo();
?>
启动测试
引用:/usr/local/vhost/nginx/sbin/nginx


在浏览器里输入
引用:https://192.168.29.128/phpinfo.php


安装配置phpMyadmin
cd /usr/ports/databases/phpmyadmin/
make fetch
cd /usr/ports/distfiles
tar -jxf phpMyAdmin-2.11.6-all-languages.tar.bz2 
mv phpMyAdmin-2.11.6-all-languages /usr/local/vhost/nginx/html/dbadmin
此时MySQL的root没有密码,如果一切正常可以用
https://192.168.29.128/dbadmin/index.php来管理MySQL了


关注下面的标签,发现更多相似文章