Jump to content
php.lv forumi

Problēma ar galeriju un chmod


tirlinjsh

Recommended Posts

Sveicināti.

Problēma ir tāda - bija nepieciešams vienai lapai izveidot galeriju.

Tad nu laika trūkuma dēļ , es nolēmu par labu gatavam risinājumam.

Viss gāja labi , kamēr es testēju šo galeriju uz sava xampp servera (windows)

Problēmas sākās tad, kad uzliku uz hostinga (ema.lv)

Pamatā , galerijas albūmi kārtojas tā:

Iekš ftp , galvenajā public_htm , atrodas mape gallery , kurā tad arī tiek veidotas galeriju sadaļas jeb albūmi.

Kad caur admina paneli izveidoju albumu , scripts saka , ka nevar izveidot šajā mapē failiņu , kurā glabāsies tālākā albuma informācija , jo direktorija nav chmod 777 , kā arī pēc tam tur nevaru uploadēt bildes.

Ieeju caur FTP iekš gallery/Mans_albums un tik tiešām , folderis nav uz 777 , bet kad mēģinu nomainīt uz 777 , man FTP parādās šads uzrakstiņš - 550 Mans_albums: Operation not permitted - tātad serveris neļauj, jo man nez kapēc nav tiesību.

Toties ja es pats manuāli, caur FTP izveidoju šādu pašu mapi , šādu problēmu vairs nav un viss iet ( dīvaini , kapēc tas tā , cerams ka kāds paskaidros)

Iegāju šīs galerijas suporta forumā , un redzēju ka viens sūdzējās par liidzigu probleemu.

Scripta veidotājs viņam ieteica uzstādīt php komandu , kad pie albuma izveidošanas, scripts chmodee mapi uz 777, bet man nav īpaša sajēga kā un kur to pievienot (nu itkaa jau ir nojauta kur , bet nēsmu 100% parliecinats) , bet pirms es štukoju par šīs komandrindiņas izveidi , man ir vien liels jautājums - vai tas maz ko mainīs , ja reiz serveris ir tik strikts ar saviem permissions , vai nebūs tā ka serveris neļaus scriptam chmodēd šo jaunizveidoto folderi , līdz ar to , es varbūt nemaz nevaru izmantot šo galeriju uz šī hosta ?

Šeit( http://yy.lv/download.php?f=178462 ) ir admin.php fails , kurš arī veic visu šo albumu veidosanu. Sākot no 701 rindiņas laikam ir tā funkcija, kas veic šo albumu veidosanu.

 

 

Cerams ka kāds palīdzēs.

Paldies jau iepriekš.

Edited by tirlinjsh
Link to comment
Share on other sites

Diez kas jau nav.

 

Es prasītu ema.lv administrācijai, kā ar PHP izveidot direktoriju ar attiecīgajām tiesībām.

Nav jau arī obligāti jāliek uzreiz 777.

 

Varbūt var izmantot arī PHP ftp funkcijas: http://lv.php.net/manual/en/function.ftp-mkdir.php

Link to comment
Share on other sites

Chmod ir php komanda, viņu ir jāizsauc uzreiz pēc direktorijas vai faila izveidošanas šim pašam failam. Man pašam kad sāku ar php programmēt attēlu direktorijai un pašiem attēlu failiem līdzīga problēma sanāca. Kad tiku galā ar direktoriju, ieuplodoju failu, bet skripts vēlāk pat nolasīt nevarēja. Manā gadījumā vismaz caur ftp klientu varēja mainīt tiesības uz direktorijām/failiem, arī no php chmod komanda labi strādāja. Pamēģini ar viņas palīdzību izmainīt direktorijas vai failu pieejas tiesības uzreiz pēc tā kā viņš nonāk atbilstoši tur kur viņam jābūt. Ja tiesības ir tik ierobežotas ka pat šī komanda nestrādās, tad vienīgais variants sazināties ar administratoriem un palūgt lai pieļauj šo iespēju, ja neļaus, tad pāriet uz citu hostingu kompāniju.
Link to comment
Share on other sites

Liels paldies jums abiem par palīdzību , bet diemžēl problēmu neizdevās atrisināt.

Tātad.

Izmēģināju Blackhalt variantu - nekas nesanāca , iespējams tāpēc ka varbūt nepareizi uzstādiju to ftp_mkdir.

Darīju to šādi:

 

defaultā kods ir šāds:

function doNew($dir){
	global $IG_CONFIG;
	if(@is_dir($IG_CONFIG['imagedir'])){
			if (@mkdir($IG_CONFIG['imagedir'].$dir)) {
					echo "$dir album has been created.<br/>";
					if (@mkdir($IG_CONFIG['thumbdir'].$dir)) {
							echo "$dir thumbnail directory has been created.<br/>";
							if (!$handle = @fopen($IG_CONFIG['imagedir'].$dir.'/gallerydata.txt', 'a')) {
									 echo "Could not create an <i>gallerydata.txt</i> data file in the ".$IG_CONFIG['imagedir'].$dir." directory. This album will therefore not support descriptions or comments.";
							}
							@fclose($handle);		
					} else {
							echo "<b>Could not create $dir thumbnail directory </b><br/>";
					}
			} else {
					echo "<b>Could not create $dir album</b><br/>";
			}
	}else{
			echo "The gallery image folder does not exist. Please check the config file.<br/>";
	}
	showManage();
}//doNew

 

izmainīju šādi :

 

function doNew($dir){
	global $IG_CONFIG;

	$conn = ftp_connect("ftp.mans-domeens.lv") or die("Could not connect");
	  ftp_login($conn,"lietotaajs","parole");
	if(@is_dir($IG_CONFIG['imagedir'])){
			if (@ftp_mkdir($conn,$IG_CONFIG['imagedir'].$dir)) {
					echo "$dir album has been created.<br/>";
					if (@ftp_mkdir($conn,$IG_CONFIG['thumbdir'].$dir)) {
							echo "$dir thumbnail directory has been created.<br/>";
							if (!$handle = @fopen($IG_CONFIG['imagedir'].$dir.'/gallerydata.txt', 'a')) {
									 echo "Could not create an <i>gallerydata.txt</i> data file in the ".$IG_CONFIG['imagedir'].$dir." directory. This album will therefore not support descriptions or comments.";
							}
							@fclose($handle);		
					} else {
							echo "<b>Could not create $dir thumbnail directory </b><br/>";
					}
			} else {
					echo "<b>Could not create $dir album</b><br/>";
			}
	}else{
			echo "The gallery image folder does not exist. Please check the config file.<br/>";
	}
	ftp_close($conn);

	showManage();
}//doNew

 

Bet rezultātā nekas nesanāca un kad spiež izveidot albumu viņš man izmet :

Could not create Mans-albuums album.

 

Tad nu ķēros pie Maris-S varianta.

Paņēmu , un izdarīju šādi:

 

function doNew($dir){
	global $IG_CONFIG;
	if(@is_dir($IG_CONFIG['imagedir'])){
			if (@mkdir($IG_CONFIG['imagedir'].$dir)) 
			if (@chmod($IG_CONFIG['imagedir'].$dir, 0777)	 <---- [b]ŠEIT ES IZDARĪJU IZMAIŅAS[/b].
				{
					echo "$dir album has been created.<br/>";
					if (@mkdir($IG_CONFIG['thumbdir'].$dir)) {
							echo "$dir thumbnail directory has been created.<br/>";
							if (!$handle = @fopen($IG_CONFIG['imagedir'].$dir.'/gallerydata.txt', 'a')) {
									 echo "Could not create an <i>gallerydata.txt</i> data file in the ".$IG_CONFIG['imagedir'].$dir." directory. This album will therefore not support descriptions or comments.";
							}
							@fclose($handle);		
					} else {
							echo "<b>Could not create $dir thumbnail directory </b><br/>";
					}
			} else {
					echo "<b>Could not create $dir album</b><br/>";
			}
	}else{
			echo "The gallery image folder does not exist. Please check the config file.<br/>";
	}
	showManage();
}//doNew

 

Rezultātā pēc albuma izveidošanas , šī rindiņa pa tiešām darbojās un kad iegāju ftp , apskatījos un ieraudzīju, ka direktorija ir nochmodēta uz 777 , bet tik un tā pēc albuma izveides , man parādījās uzraksts ka nevar izveidot gallerydata.txt failu , un arī bildes nevarēju uploadēt , pie tam vēl scripts saka ka mape nav 777 , kaut arī viņa ir.

 

Ceru uz palīdzību.

Link to comment
Share on other sites

Noņem visām funkcijām '@' simbolu, un ieslēdz kļūdu paziņojumus skriptam pašā sākumā:

 

error_reporting(E_ALL);
ini_set('display_errors', 'on');

 

iespējams kādu kļūdu vai warningu izmetīs tās funkcijas, kaut gan ja ar chmod palīdzību direktorijām ir piešķirtas pareizās tiesības visam būtu jāstrādā. Izpēti uzmanīgi augšupielādes skriptu, iespējams kļūdas pēc viņš cenšas ne tajā direktorijā uploadot bildi (it īpaši ja mājas lapas direktoriju struktūra ir sarežģīta, iespējams nepareizi norādīts ceļš līdz direktorijai), tas tik tāds minējums, bet ir vērts pārbaudīt. Šo domu pieļauju tāpēc ka galu galā parādās paziņojums par neatbilstošām tiesībām uz direktoriju, tā nevajadzētu būt, ja norādītais ceļš līdz direktorijai ir pareizais.

Link to comment
Share on other sites

Nedomāju , ka problēma ir augšuplādes scriptā , jo es izmēģināju vēl veselas 4 galerijas un problēma ir tāda paša.

Diez vai tā ir kāda sagadīšanās.Vienkārši hosts nedod tiesības ne chmodeet , ne arī augšuplādēt bildes mapē , kas ir veidota caur scriptu.

Dažiem galeriju scriptiem bija tā , kad pēc albuma izveidosanas , mape bija 777, bet rezultaatā scriptam nav tiesību neko darīt.

Link to comment
Share on other sites

Labi , es uzliku to error reporting un lūk kas parādās , kad veido jaunu albumu:

 

Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 1813 is not allowed to access /usr/home/lietotaajs/domains/mans-domeens.lv/public_html/galleryimages/test-album owned by uid 1004 in /usr/home/lietotaajs/domains/mans-domeens.lv/public_html/admin.php on line 701

 

Warning: fopen(./galleryimages/test/gallerydata.txt) [function.fopen]: failed to open stream: No such file or directory in /usr/home/lietotaajs/domains/mans-domeens.lv/public_html/admin.php on line 701

 

Warning: fclose(): supplied argument is not a valid stream resource in /usr/home/lietotaajs/domains/mans-domeens.lv/public_html/admin.php on line 704

 

 

Bet kad uploadee bildi , rādās šāds:

Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 1813 is not allowed to access /usr/home/lietotaajs/domains/mans-domeens.lv/public_html/galleryimages/test-album owned by uid 1004 in /usr/home/kurzemes/domains/kurzemeskauss.lv/public_html/admin.php on line 489

image1.jpg could not be uploaded to the test-album album.

 

izskatās , kautko vēl pa safemode tas scripts brēc.

Link to comment
Share on other sites

Es Tev ieteiktu ar pavisam vienkāršiem testa skriptiem mēģināt izveidot direktoriju un tajā failu.

Ar tiem manuāļa paraugiem (Examples).

 

Jo, tagad Tev tur, iespējams, sanāk, ka Tu ar fopen mēģini atvērt direktoriju;

tad ./galleryimages/test/gallerydata.txt , bet tādas test direktorijas nemaz nav un tas gallerydata.txt arī nav.

 

Iespējams arī jāizmanto pilns direktorijas ceļš.

 

Par tiem uid tā pa gabalu grūti spriest. Iespejams, ka tas 1004 ir apache `lietotājs` un tas 1813 ir tavs lietotājs no grupas users, bet es tikai minu ;)

Link to comment
Share on other sites

×
×
  • Create New...