Drush + nginx + php53 + Mavericks

Então, eu estava tentando reinstalar o MAMP para desenvolver drupal localmente após minha falha no HD, e tive alguns problemas. Alguém me disse para não usar o MAMP, mas sim o nginx. yay. parece divertido. Ou como transformar um processo de clique para instalar em algo muito complicado. O problema é que gosto de coisas complicadas. De qualquer forma, foi uma luta fazer isso, mas graças ao primeiro e único chipotle (que passou 5 horas depurando isso comigo), consegui colocá-lo em execução. Grito enorme para ele.

Tentei colar as instruções à medida que vinham aqui, algumas podem ter mudado, Como tive que ir e voltar, mas se você as usar e ocorrer um erro, sinta-se à vontade para entrar em contato comigo, talvez eu me lembre do que Eu fiz.

dica rápida: para colar algo diretamente em um arquivo foo, use pbpaste > foo

CONFIGURAÇÃO

[brew tap homebrew/versions && brew tap homebrew/homebrew-php]
brew install composer

brew install
--without-apache --with-fpm --with-mysql php53
brew install
--HEAD drush
brew
switch drush HEAD
brew install mysql

[ mysql_secure_installation ]
brew install nginx



mkdir
-p /usr/local/etc/nginx/logs
mkdir
-p /usr/local/etc/nginx/sites-available
mkdir
-p /usr/local/etc/nginx/sites-enabled
mkdir
-p /usr/local/etc/nginx/conf.d
mkdir
-p /usr/local/etc/nginx/ssl
sudo mkdir
-p /var/www

sudo chown
:staff /var/www
sudo chmod
775 /var/www

Salve como /usr/local/etc/nginx/nginx.conf:

worker_processes  1;

error_log
/usr/local/etc/nginx/logs/error.log debug;

events
{
worker_connections
256;
}

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
/usr/local/etc/nginx/logs/access.log main;

sendfile on
;

keepalive_timeout
65;

index index
.html index.php;

include
/usr/local/etc/nginx/sites-enabled/*;
}

Salve como /usr/local/etc/nginx/conf.d/php-fpm

location ~ .php$ {
try_files $uri
= 404;
fastcgi_pass
127.0.0.1:9000;
fastcgi_index index
.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
;
include fastcgi_params
;
}

salve isso como modelo em / usr / local / etc / nginx

#Drupal specific rewriting configuration
location
/ {
try_files $uri $uri
/ /index.php?q=$uri&$args;
}

#Do not allow to view .htaccess and .htpassword
location
~ /.ht {
deny all
;
}

ADICIONE UM NOVO SITE

Para adicionar um novo site, adicione um arquivo com o nome do site em / usr / local / etc / nginx / sites-enabled

server {
listen
80;
server_name foo
.dev;
root
/Users/Gaston/Sites/foo;
index index
.php;

#setup logging
access_log
/usr/local/etc/nginx/logs/foo.access.log;
error_log
/usr/local/etc/nginx/logs/foo.error.log;

location
/ {
include
/usr/local/etc/nginx/conf.d/php-fpm;
include
template;
}

location
= /info {
allow
127.0.0.1;
deny all
;
rewrite
(.*) /.info.php;

error_page
404 /404.html;
error_page
403 /403.html;
}

}

e adicione-o aos seus anfitriões

sudo echo "127.0.0.1 foo.dev" >> /etc/hosts

DEPURAR

Composer necessário: execute

cd /usr/local/Cellar/drush/HEAD/libexec/
composer install

Se você quiser php no login, faça o seguinte:

    echo 'export PATH="$(brew --prefix josegonzalez/php/php55)/bin:$PATH"' >> ~/.bash_profile
cp
/usr/local/Cellar/php53/<tab complete>/homebrew.mxcl.php53.plist ~/Library/LaunchAgents/
launchctl load
-w ~/Library/LaunchAgents/homebrew.mxcl.php53.plist
cp
/usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

sudo cp /usr/local/opt/nginx/*.plist /Library/LaunchDaemons/

sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.nginx.plist

Caso contrário, se como eu, você gosta de executá-lo sob demanda, basta escrever um pequeno script ou uma função em seu ~ / .bash_profile ao longo dessas linhas. <EM BREVE>

Mais uma vez, obrigado ao chipotle por dedicar seu tempo a isso comigo.