Php APC
Instalar el optcode de PHP APC:
# cd /usr/ports/www/pecl-APC
# make install clean
Configurar en el php ini las opciones más convenientes (/usr/local/etc/php.ini).
PHP 5.2
Entramos en el directorio del port:
# cd /usr/ports/lang/php5
Configuramos las opciones de instalación (marcamos el soporte de Apache y de Multibyte)
# make configure
e instalamos:
# make install clean
Añadimos al archivo de configuración de Apache:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
En los módulos cargados de Apache ya debe existir
LoadModule php5_module libexec/apache22/libphp5.so
Añadimos index.php como archivo por defecto al entrar en un directorio:
DirectoryIndex index.php index.html
Instalamos las extensiones necesarias:
# cd /usr/ports/lang/php5-extensions
# make configure
# make install clean
Copiamos el archivo /usr/local/etc/php.ini-dist a /usr/local/etc/php.ini
Reiniciamos Apache:
# apachectl -k stop
# apachectl -k start
Las extensiones se cargan desde el archivo /usr/local/etc/php/extensions.ini
El archivo de configuración se encuentra en /usr/local/etc/php.ini
Para ver la versión de php desde consola:
# php -v
Si nos aparece un core dump de php deberemos ir al archivo de configuración de estensiones de php y cargar recode.so antes de cualquier extensión de imap o mysql, lo mejor es moverla a la primera línea.
MySQL 5.1
Para instalar Mysql primero entramos en el directorio del port:
# cd /usr/ports/databases/mysql51-server
Generamos la estructura de permisos de MySQL.
# mysql_install_db
Después copiamos el directorio /var/db/mysql a /usr (si todo va bien lo eliminamos de /var/db) y añadimos en /var/db un enlace simbólico a /usr/mysql
Cambiamos los permisos en /usr/mysql para que pueda crear los archivos pid, de errores (/var/db/mysql/nombre.server.err), deberemos darle permisos de ejecución al directorio /var/db/mysql/mysql para que pueda leer las tablas y cambiar los permisos (le ponemos de usuario y grupo mysql y tanto al directorio como a todos los archivos).
Arrancamos el servicio:
# /usr/local/etc/rc.d/mysql-server start
Creamos el usuario administrador del gestor:
# mysqladmin -u root password 'nuevapass'
Para que el servicio se arranque al iniciar la máquina tenemos que modificar el fichero /etc/rc.conf:
mysql_enable="YES"
Una vez que tenemos el MySQL ejecutándose, querremos crear una base de datos con su usuario correspondiente. Para ello ejecutamos:
# mysql -u root -p (nos pedirá password)
mysql> create database mibasededatos;
mysql> grant all privileges on mibasededatos.* to miusuario@localhost identified by 'mipassword'
El archivo de ejemplo my.cnf (large, medium, small) está localizado en /usr/local/share/mysql
Realizar una copia de my-large.cnf a /var/db/mysql/my.cnf.
Reiniciamos MySQL
# /usr/local/etc/rc.d/mysql-server stop
# /usr/local/etc/rc.d/mysql-server start
Para desactivar las tablas InnoDB (si no vamos a utilizar transacciones) ponemos en el archivo my.cnf de /var/db/mysql/
skip-innodb
y para poner los mensajes de error en español:
language = /usr/local/share/mysql/spanish/
Nginx
Para instalar Nginx primero entramos en el directorio del port:
# cd /usr/posts/www/nginx
# make config
# make install clean
El script de inicio parada de Nginx está en /usr/local/etc/rc.d/nginx por lo que para iniciar, parar o reiniciar nginx deberemos ejecutar:
# /usr/local/etc/rc.d/nginx start|stop|restart
para que arranque Nginx con el sistema deberemos añadir a /etc/rc.conf la línea:
nginx_enable=”YES”
Instalamos lighttpd para obtener el archivo spawn-fcgi y después copiamos el archivo a un directorio temporal, desinstalamos lighttpd y copiamos spawn-fcgi a /usr/local/bin/spawn-fcgi
# cd /usr/ports/www/lighttpd
# make install clean
# cp /usr/local/bin/spawn-fcgi /root/
# make deinstall
# cp /root/spawn-fcgi /usr/local/bin/spawn-fcgi
Creamos el archivo php.cgi.sh
en /usr/local/etc/rc.d/ para proceder al arranque / parada / reinicio / estado de php como fast-cgi (este script se ejecuta con el inicio del sistema)
# cd /usr/local/etc/rc.d/
# touch php.cgi.sh
y le copiamos el contenido del archivo
#!/bin/sh
# Shell Script to start / stop PHP FastCGI using lighttpd - spawn-fcgi binary file.
# -------------------------------------------------------------------------
# Copyright (c) 2006 nixCraft project
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
PROVIDES=php-cgi
LIGHTTPD_FCGI=/usr/local/bin/spawn-fcgi
SERVER_IP=127.0.0.1
SERVER_PORT=9000
SERVER_USER=www
SERVER_GROUP=www
PHP_CGI=/usr/local/bin/php-cgi
PGREP=/bin/pgrep
KILLALL=/usr/bin/killall
### No editing below ####
cmd=$1
pcgi_start(){
echo "Starting $PROVIDES..."
$LIGHTTPD_FCGI -a $SERVER_IP -p $SERVER_PORT -u $SERVER_USER -g $SERVER_GROUP -f $PHP_CGI
}
pcgi_stop(){
echo "Killing $PROVIDES..."
$KILLALL $PROVIDES
}
pcgi_restart(){
pcgi_stop
pcgi_start
}
pcgi_status(){
$PGREP $PROVIDES > /dev/null
[ $? -eq 0 ] && echo "$PROVIDES running" || echo "$PROVIDES NOT running"
}
pcgi_help(){
echo "Usage: $0 {start|stop|restart|status}"
}
case ${cmd} in
[Ss][Tt][Aa][Rr][Tt]) pcgi_start;;
[Ss][Tt][Oo][Pp]) pcgi_stop;;
[Rr][Ee][Ss][Tt][Aa][Rr][Tt]) pcgi_restart;;
[Ss][Tt][Aa][Tt][Uu][Ss]) pcgi_status 0;;
*) pcgi_help ;;
esac
y configuramos el archivo /usr/local/etc/nginx/nginx.conf de nginx para que sirva las peticiones php mediante php fast cgi.
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
# root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
include fastcgi_params;
}
Informacion de archivos Nginx:
Archivo de configuración: /usr/local/etc/nginx/nginx.conf
Archivo log de error: /var/log/nginx-error.log
Archivo log de acceso: /var/log/nginx-access.log
DocumentRoot por defecto: /usr/local/www/nginx/
Para la creación de directorios protegidos por password necesitaremos la utilidad de Apache htpasswd que podemos ejecutar en un servidor (*.NIX) con Apache instalado:
# htpasswd -cd archivo usuario
Después podemos copiar el archivo o el contenido del mismo a nuestro archivo de claves de nginx.
Apache 2.2
El port de Apache 2.2 se encuentra en /usr/porst/www/apache22/.
El archivo/s de configuración se encuentra en /usr/local/etc/apache22/.
Para que arranque Apache con el inicio del sistema debe añadirse apache22_enable=”YES” al archivo /etc/rc.conf.
Después de actualizar a Apache 2.2, en ocasiones podemos encontrar el error:
"[warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter"
para lo que deberemos cargar dinamicamente el módulo accf_http.ko (para no tener que recompilar el kernel) con la utilidad kldload:
# kldload accf_http.ko
y activarlo por defecto en /boot/defaults/loader.conf
# nano /boot/defaults/loader.conf
Buscar la entrada accf_http_load="NO" y cambiarlo a accf_http_load="YES" (o añadirla en caso de no existir).
Si obtenemos el error:
apr_sockaddr_info_get() failed for *******
Modificamos el archivo de configuración de Apache en /usr/local/etc/apache22/httpd.conf para descomentar o modificar la línea:
ServerName localhost:80
poniendo un nombre válido, si aún así no conseguimos arrancarlo, comentar
#LoadModule unique_id_module libexec/apache22/mod_unique_id.so
Para ver la versión de Apache desde consola
# httpd -v