Jump to content


Photo

Como Executar Arquivo Bash Em Um Servidor Linux?


  • Faça o login para participar
6 replies to this topic

#1 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 04/12/2007, 14:52

Tenho o script abaixo e preciso executar no meu servidor linux para trabalhar com socket por php e depois trabalhar em cima do PHP GTK nas maquinas, mas nao consigo executar esse arquivo

Aparece o seguinte erro qdo executo:
[root@OMEGA bin]# bash /var/www/html/josy/socket/server
: Arquivo ou diretório não encontradoe 2: ?php
: command not foundsocket/server: line 3:
/var/www/html/josy/socket/server: line 4: syntax error near unexpected token `'MAXLINE','
'var/www/html/josy/socket/server: line 4: ` define('MAXLINE', 1024); //TAMANHO DO SOCKET RECEBIDO

Não sei se por falta de permissão ou se a primeira linha do meu script tem q buscar onde esta o php no meu servidor?

Se alguem souber me dar uma dica, ja agradeço

#!/usr/local/bin/php -q
<?php
	
	define('MAXLINE', 1024); //TAMANHO DO SOCKET RECEBIDO
	define('LISTENQ', 5);  
	define('PORT', 81);	  //PORTA PADRÃO PARA CONEXÃO
	define('FD_SETSIZE', 2); //Nº MÁXIMO DE CLIENTES PERMITIDO POR CONEXÃO
		
	//PARA MATAR O SERVIDOR
	function killDaemon()
	{
		global $listenfd, $client;
		$msg = "Fechando servidor!!\n";
		for ($i = 0; $i < FD_SETSIZE; $i++)
		{
			if ($client[$i] != null)
			{
				socket_write($client[$i], $msg, strlen($msg));
				socket_close($client[$i]);
			}
		}
		print "DESCONECTAR!!\n";
		socket_close($listenfd);
		exit;
	}
	
	
	//QUANDO O CLIENTE DESCONECTAR
	function closeClient($i)
	{
		global $client, $remote_host, $remote_port;
		print "closing client[$i] ({$remote_host[$i]}:{$remote_port[$i]})\n";
		socket_close($client[$i]);
		$client[$i] = null;
		unset($remote_host[$i]);
				
		//VERIFICA SE HÁ CLIENTE CONECTADO, FAZ O DESCONECT
		$someoneconnected = false;
		
		for ($i = 0; $i <= FD_SETSIZE; $i++){
			if($client[$i] != null)
			{
				$someoneconnected = true;
				break;
			}
		}
		
		if($someoneconnected == false)
		{
			killDaemon();
		}
	}
	
	$listenfd = socket_create(AF_INET, SOCK_STREAM, 0);
		
	if ($listenfd)
		print "Escutando a porta " . PORT . "\n";
	else
		die("Socket morreu!!\n");
	
	//CONFIGURAÇÃO IP DO SERVER
	socket_setopt($listenfd, SOL_SOCKET, SO_REUSEADDR, 0); 
	if (!socket_bind($listenfd, "0.0.0.0", PORT))
	{
		socket_close($listenfd);
		die("Não foi possível conectar!!\n");
	}
	socket_listen($listenfd, LISTENQ);
	
	for ($i = 0; $i < LISTENQ; $i++)
		$client[$i] = null;
		
	while(1)
	{
		$rfds[0] = $listenfd;
		{
			for ($i = 0; $i <= FD_SETSIZE; $i++)
				if ($client[$i] != null)
					$rfds[$i + 1] = $client[$i];
		}
		
		//BLOQUEIA INDEFINITAMENTE ATÉ RECEBER UMA CONEXÃO
		$nready = socket_select($rfds, $null, $null, null);
				
		//SE TEMOS UMA CONEXÃO
		if (in_array($listenfd, $rfds))
		{
			print "Listenfd ouviu algo, criando novo cliente!!\n";
			
			//PEGA O NOVO LOCAL
			for ($i = 0; $i <= FD_SETSIZE; $i++)
			{
				if ($client[$i] == null)
				{
					$client[$i] = socket_accept($listenfd);
					socket_setopt($client[$i], SOL_SOCKET, SO_REUSEADDR, 0);
					socket_getpeername($client[$i], $remote_host[$i], $remote_port[$i]);
					print "Aceitar {$remote_host[$i]}:{$remote_port[$i]} as client[$i]\n";
								
					if ($i < FD_SETSIZE)
					{
						break;
					}
				}
				
				if ($i >= FD_SETSIZE)
				{
					//NO CASO DE MUITOS CLIENTES
					closeClient($i);
					break;
				}
			}
			if (--$nready <= 0)
			continue;
		}
		
		
		//VERIFICA OS CLIENTES PARA RECEPÇÃO DE DADOS
		for ($i = 0; $i <= FD_SETSIZE; $i++)
		{
			if ($client[$i] == null)
				continue;
			
			if (in_array($client[$i], $rfds))
			{
				$n = trim(socket_read($client[$i], MAXLINE));
				
				if (!$n)
					closeClient($i);
				else
				{
					//QDO O CLIENTE ENVIA OS DADOS ABAIXO
					if ($n == "/killme")
						killDaemon();
					else if ($n == "/quit")
						closeClient($i);
					else
					{
						//IMPRIME ALGO NO SERVIDOR
						print "From {$remote_host[$i]}:{$remote_port[$i]},>client[$ i]: $n\n";
						for ($j = 0; $j <= FD_SETSIZE; $j++)
						{
							if ($client[$j] != null)
								socket_write($client[$j], "From client[$i]: $n".chr(0));
						}
					}
				}
				
				if (--$nready <= 0)
					break;
			}
		}
	}

?>


___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________


#2 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 04/12/2007, 23:34

bash seria somente para programação em SHELL, porem o script é php, então o correto é

# php script.php

Isso na sua shell, e sem a linha do interpretador, já vai direto pra parte falando que ele é um php <?php





NOTA À QUEM FICA FAZENDO PROPAGANDA:
Temos uma seção somente para isso, a próxima menssagem de propaganda vai levar warn

Edição feita por: Hospedar-se .Com, 04/12/2007, 23:39.


#3 Josy

Josy

    :*

  • Usuários
  • 662 posts
  • Sexo:Feminino
  • Localidade:Porto Alegre/RS

Posted 05/12/2007, 13:34

Oi,

Primeiro fiz o seguinte no meu servidor, instalei e atualizei o pacote php-cli pelo repositório urpmi, agora tenho dar o comando: php server.php como vc diz, tirei a linha d comando do início do arq claro, mas me da os seguintes erros:

[root@OMEGA socket]# php server
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/gd.so' - /usr/lib/php/extensions/gd.so: undefined symbol: empty_string in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/imap.so' - /usr/lib/php/extensions/imap.so: undefined symbol: _zval_dtor in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/ldap.so' - /usr/lib/php/extensions/ldap.so: undefined symbol: empty_string in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/mysql.so' - /usr/lib/php/extensions/mysql.so: undefined symbol: empty_string in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/pgsql.so' - /usr/lib/php/extensions/pgsql.so: undefined symbol: empty_string in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/readline.so' - /usr/lib/php/extensions/readline.so: undefined symbol: _zval_dtor in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/yp.so' - /usr/lib/php/extensions/yp.so: undefined symbol: _zval_copy_ctor in Unknown on line 0
PHP Fatal error: Call to undefined function socket_create() in /var/www/html/josy/socket/server on line 54

Sabe como resolvo isso agora?

Mexendo ainda, usando o urmpi atualizei os pacotes das bibliotecas gd.so, imap.so, ldap.so, mysql.so, pgsql.so e readline.so, parou de dar esses erros do início, mas permanece dando o erro PHP Fatal error: Call to undefined function socket_create() in /var/www/html/josy/socket/server on line 54.

Esse erro tava ocorrendo pq nao tinha a biblioteca sockets.so no php, instalei e tah funcionando o server.. grata pelas ajudas.

___________________________________

Josy R.L.
Grupo Plyme
www.plyme.com.br
___________________________________


#4 Hospedar-se .Com

Hospedar-se .Com

    Super Veterano

  • Usuários
  • 1500 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 05/12/2007, 23:09

Sua compilação do php parace ter coisa a mais que na verdade deve ter dado um monte de erro quando tentou compilar, teste com o comando


# ldd /usr/local/bin/php

Ele deverá mostrar algo como

libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7fa9000)
libaspell.so.15 => /usr/lib/libaspell.so.15 (0xb7f06000)
libpspell.so.15 => /usr/lib/libpspell.so.15 (0xb7f04000)
librt.so.1 => /lib/librt.so.1 (0xb7ef0000)
libmcrypt.so.4 => /usr/lib/libmcrypt.so.4 (0xb7ebd000)
libltdl.so.3 => /usr/lib/libltdl.so.3 (0xb7eb6000)
libdl.so.2 => /lib/libdl.so.2 (0xb7eb1000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7e49000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7e36000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7d63000)
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0xb7d4d000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7d29000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7d09000)
libresolv.so.2 => /lib/libresolv.so.2 (0xb7cf6000)
libm.so.6 => /lib/libm.so.6 (0xb7cd1000)
libnsl.so.1 => /lib/libnsl.so.1 (0xb7cbc000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb7ca5000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb7c33000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb7c0e000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0xb7c0b000)
libssl.so.5 => /lib/libssl.so.5 (0xb7bd3000)
libcrypto.so.5 => /lib/libcrypto.so.5 (0xb7ac6000)
libcurl.so.3 => /usr/lib/libcurl.so.3 (0xb7a96000)
libidn.so.11 => /usr/lib/libidn.so.11 (0xb7a66000)
libc.so.6 => /lib/libc.so.6 (0xb793c000)
libnss_files.so.2 => /lib/libnss_files.so.2 (0xb7931000)
libnss_dns.so.2 => /lib/libnss_dns.so.2 (0xb792b000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7822000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7746000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb773c000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7729000)
/lib/ld-linux.so.2 (0xb7fe6000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb771a000)
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb7717000)


Se mostrar todos as SO corretamente então está OK, caso contrário será necessário recompilar seu php com suporte as SO que estão faltando e/ou instala-las

Pode tentar ver alguma lib que só mude o final do nome e criar um link para o local correto que deve ser carregado. Talvez essa seja a parte + dificil para deixar seu programa funcionando redondo.


No socket, o que exatamente esse script tem que fazer? Ele precisa abrir alguma porta e ficar escutando nela? Caso sim:
verifique se o seu kernel foi compilado com suporte a socket

QQ dúvida posta aqui

Edição feita por: Hospedar-se .Com, 05/12/2007, 23:13.


#5 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13794 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 25/10/2017, 04:03

Acquisto Viagra Slovenia levitra brand online Propecia Pharmacie Levitra Acquistare Impotenza Cialis Eli Lilly
Rhine Ink Cialis Et Viagra En Ligne Buy Doxycycline No Prescription order levitra online Cephalexin Veterinary Propecia Canadian Pharmacy
Usa Direct Pharmacy cialis online Medications Without Presciptions Mejor Ora Para Tomar Propecia Levitra 20mg Tablets Price
Keflex What Is Le Viagra Coeur Mixing Amoxicillin With Penicillin viagra Preise Cialis Angebote Prix Propecia Nancy

#6 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13794 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 05/11/2017, 17:48

Cialis By Mail With Prescription Kamagra Does It Work viagra Amoxicillin And Mononucleosis Where To Purchase Amoxicilina

#7 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13794 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 05/12/2017, 06:49

Slimonil Cialis Rezeptfrei Tadalafil viagra online pharmacy Ordonnance Viagra Buy Synthroid Abbott
Viagra Generico Contrassegno Buy Super Active Viagra Online Free Stendra 50mg viagra online prescription Online Drugstore
Buy Alli Orlistat Online Us Pharmacy Nitrofurantoin cialis buy online Oxetine
Cephalexin Diclofenac Effects generic viagra Zithromax For Cough




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq