Axude PHP, MySQL, Apache, Debian, et bien d'autres!
  • scissors
    juin 12th, 2012neriqueNginX

    Nginx ne gère pas les processus php comme le fait Apache et ne peut donc pas modifier leur environnement. De fait, il est impossible cialis online de passer directement une variable d’environnement comme on le fait dans Apache avec la directive « SetEnv ».
    On serait tenté de le faire avec la directive « env » de Nginx, mais elle ne fonctionne pas de cette manière.

    Alors comment faire?

    Il faut utiliser les directives fastcgi_params que l’on utilise pour interpréter les fichiers PHP entre autres.

    server {
    listen 80;
    server_name my.domain.com;
    root /home/web/my.domain.com/public;
    index index.html index.htm index.php;
    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    fastcgi_param APPLICATION_ENV "development";
    }
    }

    Tags: , , , ,
  • scissors
    avril 12th, 2012neriqueNginX

    Nginx permet tout un tas de choses compliquées, et notamment utiliser des server_name dynamiques contenant des variables
    Voici un exemple pour

    rediriger vers un sous-répertoire un sous-domaine:

    server {
    listen 80 default_server;

    server_name ~^(?.+)\.mondomaine\.com$;
    root /home/web/www/$subdomain;
    index index.html index.htm index.php;
    }

    Grâce à cela, si votre root est /home/web/www et que vous vous rendez à l’url toto.mondomaine.com, alors le root sera automatiquement /home/web/www/toto

    Magique!

    Tags: , , ,
  • scissors
    mars 30th, 2012neriqueNginX

    On sait tous comment installer PHP5 et Apache2, mais moins souvent comment purement et simplement ne pas installer Apache2 et mettre Nginx à la place. Voici la solution!

    Par défaut le paquet php5-fpm n’est pas inclu dans les paquets par défaut de la distrib Debian Squeeze,

    on va utiliser le

    depot de DotDeb
    echo "deb http://packages.dotdeb.org stable all" >> /etc/apt/sources.list
    echo "deb-src http://packages.dotdeb.org stable all" >> /etc/apt/sources.list
    wget http://www.dotdeb.org/dotdeb.gpg
    cat dotdeb.gpg | apt-key add -
    rm dotdeb.gpg
    apt-get update
    apt-get install nginx php5-fpm

    cd /etc/nginx/sites-enabled
    rm default
    vi localhost
    server {
    listen 80;
    server_name localhost;
    root /var/www/localhost;
    index index.html index.htm index.php;
    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    }
    }

    /etc/init.d/php5-fpm start
    /etc/init.d/nginx start

    Tags: , , , ,
  • scissors
    octobre 5th, 2010peypeyNginX

    php5-cgi:

    Installer php5-cgi:

    Installer php5 et les modules nécessaires à l’exécution de votre application web (choisissez les modules dont votre application web a besoin pour fonctionner):

    #apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

    Configurer Php5-cgi:

    Editer le fichier « /etc/php5/cgi/php.ini » et ajouter la ligne suivante :

    cgi.fix_pathinfo = 1

    Créer le lanceur du cgi php5 /etc/init.d/php-fastcgi avec le contenu suivant :

    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides:          php-fastcgi
    # Required-Start:    $all
    # Required-Stop:     $all
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start and stop php-cgi in external FASTCGI mode
    # Description:       Start and stop php-cgi in external FASTCGI mode
    ### END INIT INFO
    
    # Do NOT "set -e"
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    DESC="php-cgi in external FASTCGI mode"
    NAME=php-fastcgi
    DAEMON=/usr/bin/php-cgi
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    
    # Exit if the package is not installed
    [ -x "$DAEMON" ] || exit 0
    
    # Read configuration variable file if it is present
    [ -r /etc/default/$NAME ] && . /etc/default/$NAME
    
    # Load the VERBOSE setting and other rcS variables
    . /lib/init/vars.sh
    
    # Define LSB log_* functions.
    # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
    . /lib/lsb/init-functions
    
    # If the daemon is not enabled, give the user a warning and then exit,
    # unless we are stopping the daemon
    if [ "$START" != "yes" -a "$1" != "stop" ]; then
            log_warning_msg "To enable $NAME, edit /etc/default/$NAME and set START=yes"
            exit 0
    fi
    
    # Process configuration
    export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS
    DAEMON_ARGS="-q -b $FCGI_HOST:$FCGI_PORT"
    
    do_start()
    {
            # Return
            #   0 if daemon has been started
            #    1 if daemon was already running
            #   2 if daemon could not be started
            start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1
            start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile --chuid $EXEC_AS_USER --startas $DAEMON -- $DAEMON_ARGS || return 2
    }
    
    do_stop()
    {
            # Return
            #   0 if daemon has been stopped
            #   1 if daemon was already stopped
            #   2 if daemon could not be stopped
            #   other if a failure occurred
            start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE > /dev/null # --name $DAEMON
            RETVAL="$?"
            [ "$RETVAL" = 2 ] && return 2
            # Wait for children to finish too if this is a daemon that forks
            # and if the daemon is only ever run from this initscript.
            # If the above conditions are not satisfied then add some other code
            # that waits for the process to drop all resources that could be
            # needed by services started subsequently.  A last resort is to
            # sleep for some time.
            start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
            [ "$?" = 2 ] && return 2
            # Many daemons don't delete their pidfiles when they exit.
            rm -f $PIDFILE
            return "$RETVAL"
    }
    
    case "$1" in
      start)
            [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
            do_start
            case "$?" in
                    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                    2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
            esac
            ;;
      stop)
            [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
            do_stop
            case "$?" in
                    0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                     2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
            esac
            ;;
      restart|force-reload)
            log_daemon_msg "Restarting $DESC" "$NAME"
            do_stop
            case "$?" in
              0|1)
                    do_start
                    case "$?" in
                            0) log_end_msg 0 ;;
                            1) log_end_msg 1 ;; # Old process is still running
                            *) log_end_msg 1 ;; # Failed to start
                    esac
                    ;;
              *)
                    # Failed to stop
                    log_end_msg 1
                    ;;
            esac
            ;;
      *)
            echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
            exit 3
            ;;
    esac

    Read the rest of this entry »

    Tags: , , , , , ,